
早速ですがお願いします。例えば下のプログラムでのSQL文なのですが、配列str1[0]の中身”みかん”をINSERTしたいのですが、やりかたがわかりません。プログラミングの素人なので簡単な質問で申し訳ないですけど、どなたか教えてくれないでしょうか?
ちなみにこのプログラムでstr1[0]のところを直接みかんと入れたらデータベースに追加することはできました。
import java.sql.*;
class jdbc{
public static void main(String args[]){
String[] str1 = new String[1];
str1[0] = "みかん";
try{
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql:test";
String user = "";
String password = "";
System.out.println("URL :" + url);
System.out.println("USER :" + user);
System.out.println("PASSWORD :" + password);
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
int insertCount = stmt.executeUpdate("INSERT INTO shinamono (hinmei,nedan) VALUES ('+str1[0]+', 1500)");
if (insertCount >0){
System.out.println("追加しました");
}else{
System.out.println("追加できませんでした");
}
conn.commit();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}
なおエラーメッセージは次の通りです。
java.sql.SQLException: ERROR: column "みかん" does not exist
at org.postgresql.Connection.ExecSQL(Connection.java:533)
at org.postgresql.jdbc2.Statement.execute(Statement.java:294)
at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:78)
at jdbc.main(jdbc.java:21)
No.1ベストアンサー
- 回答日時:
int insertCount = stmt.executeUpdate("INSERT INTO shinamono (hinmei,nedan) VALUES ('+str1[0]+', 1500)");
この行ですね。文字列を+で連結しているので
"insert into ...'" + str1[0] + "', 1500)"
にならないといけません。ちゃんと前半の終わりと後半の始まりのダブルクォートを入れましょう。
それとstr1が配列なのは、今後拡張するからでしょうか?(今のプログラムでは配列である必要がないので・・・)
早速の回答ありがとうございます。うまく追加する事ができました。
>それとstr1が配列なのは、今後拡張するからでしょうか?
その予定です。HPから取ってきたデータを配列に入れて、そのデータをデータベースに追加するつもりでしたので、簡単な例でやり方をつかもうと思い質問させてもらいました。時間がなくて困っていたところ本当に助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgresqlでのトランザクショ...
-
postgresql のフルバキュームみ...
-
SQLServer サイレントインストール
-
Windows10がインストールできま...
-
Oracle9iを再インストールす...
-
大至急!mdfファイルの中身を見...
-
MySQLがインストールできない
-
psql 使用時に自動 commit を無...
-
Oracle RacにおけるSSH接続設定...
-
postgresqlの接続ポート5432か...
-
AccessからのPostgreSQLの移行...
-
exp、impについて
-
SQL Server 2008 R2
-
pgpassが有効にならない?
-
SQLEXPRESSにてコマンドプロン...
-
windowsから見えない
-
XPにOracle8.1.7でNet8が・・
-
booleanデータのcsv出力形式
-
デフォルトのCLIENT_ENCODINGを...
-
ローカルでDB作成して勉強し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresqlでのトランザクショ...
-
postgresql のフルバキュームみ...
-
PostgreSQLの基礎的な文法
-
sqlにて0無しの月をフォーマッ...
-
JDBCで配列を使ったSQL文(INSE...
-
PostgreSQLのアンインストール...
-
csvデータをPostgreSQLにインポ...
-
postgresqlの接続ポート5432か...
-
windows版postgresql 異なるバ...
-
MySQLとPostgresの同時使用
-
Oracle RacにおけるSSH接続設定...
-
odbc接続処理が遅い
-
Access フォーム「使用可能」...
-
PostgreSQLで集約関数をネスト...
-
ORA-12571 パケット・ライター障害
-
PostgreSQLの標準文字コードをS...
-
Oracle9iを再インストールす...
-
Oracle 10gがインストール出来...
-
Windows10がインストールできま...
-
大至急!mdfファイルの中身を見...
おすすめ情報