私は基本的にコンソールベースのメニューで自分のプログラムを作っていますよね?それはデータベースマネージャーで、数字で答えることで操作されます(y'know、レコードを入力するには「1」、レコードをエクスポートするには「2」を入力します)。パラメータを混乱させる方法はありません。それはとにかく働いていないようですね? ここに私のコードがあります。その後、私は何を試してみましょう。CSVの内容をJDBC経由でデータベースにロードしますか?
public void loadCSV(String table, String filename) {
String query;
try (Statement st = con.createStatement()) {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/DrSoheirManager", "root", "ITGS!!!");
st = con.createStatement();
query = "load data local infile '/Users/****/NetBeansProjects/IA Draft 3/" +
filename + "' ignore into table " + table + " columns terminated
by ',' \n" + " lines terminated by '\\n'";
/* load data local infile '/users/****/netbeansprojects/ia draft
3/patients.csv' ignore into table */
st.execute(query);
} catch (Exception e) {
e.printStackTrace();
st = null;
}
}
どのようにしてこのメソッドを使用すべきかは、基本的には次のとおりです。loadCSV( "patients"、patients.csv);ここでpatientは値を入力するテーブルの名前、patients.csvは入力したい値のソースです。 これは私の最初の時間JDBCを使用しているので、関連するメソッドには慣れていませんが、st.executeQuery()とst.executeUpdate()でst.execute(query)を置き換えようとしました。事前に私はエラーが発生していたが、SQLクエリを少し変更するとその問題が修正されたようだ。今私はエラーを取得していないが、情報はちょうどデータベースに追加されていません。
ps:重複を追加せずにデータベースにインポートできるようにするために、私は '無視'機能を使用しました。私はこれを正しくしましたか?
私は何か規則を違反していると私に知らせてください。エラーを修正できます。事前にありがとう:)
編集:私のスキーマ:
とサンプルデータセット:
CREATE TABLE IF NOT EXISTS `Patients` (
`ID` int(11) NOT NULL,
`fname` text NOT NULL,
`lname` text NOT NULL,
`Diagnosis` text NOT NULL,
`phone` varchar(15) NOT NULL,
`email` varchar(25) NOT NULL,
`DOB` date NOT NULL,
`DOFV` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
INSERT INTO `Patients` (`ID`, `fname`, `lname`, `Diagnosis`, `phone`, `email`, `DOB`, `DOFV`) VALUES
(1, 'hanalei', 'ezz', 'hemophelia', '+1(919)929-6567', '[email protected]', '1998-08-22', '2008-03-12'),
(2, 'monika', 'zanesco', 'sickle cell disease', '+1(919)939-4264', '[email protected]', '1998-10-05', '2016-04-13'),
(3, 'bang', 'pham', 'leukemia', '+1(919)243-8937', '[email protected]', '1998-03-15', '2013-03-03');
私のユーザ名の代わりにアスタリスクを使用しているので、実際のコードには存在しません。 –
あなたの 'show create table xyz'とその中の5行のようなデータのサンプルを表示します – Drew
@Drewごめんなさい?それはどういう意味ですか? –