executeQuery()ソリューションでデータ操作文を発行できない。
2022-02-21 04:56:46
MySQLデータベースが接続され、以下のJavaコードでテーブル構造作成文が実行されます。
String driver = "com.mysql.jdbc.Driver"; // Get the driver class for the mysql database
String url = "jdbc:mysql://" + dataSource.getDataSourceIp() + " + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceName()
+ "?characterEncoding=" + dataSource.getCharacterSet(); // connect to the database
String userName = dataSource.getDataSourceUser(); // the username to connect to mysql
String password = dataSource.getDataSourcePwd(); // password to connect to mysql
try {
Class.forName(driver);
Connection con = (Connection) DriverManager.getConnection(url, userName, password);
String s = con.nativeSQL(sql);
System.out.println(s);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1) + "/t" + rs.getString(2));
}
rs.close();
st.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
エラーメッセージは以下の通りです。
executeQuery()でデータ操作文を発行できません。
デバッグ後、createを実行した場合だからです。 更新、挿入SQL文 は、ステートメントのexecute()メソッドを使用する必要があり、ステートメントのexecuteQuery()メソッドを使用する場合は、アピールの問題が発生します
修正したjavaのコードは以下の通りです。
<スパン
String driver = "com.mysql.jdbc.Driver"; // Get the driver class for the mysql database
String url = "jdbc:mysql://" + dataSource.getDataSourceIp() + " + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceName() + "?characterEncoding=" + dataSource.getCharacterSet(); // Connect to the database
String userName = dataSource.getDataSourceUser(); // the username to connect to mysql
String password = dataSource.getDataSourcePwd(); // password to connect to mysql
try {
Class.forName(driver);
Connection con = (Connection) DriverManager.getConnection(url, userName, password);
String s = con.nativeSQL(sql);
Statement st = con.createStatement();
boolean result = st.execute(sql);
st.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
関連
-
[エラー処理] [MySQL] [Err] 1241 - オペランドは 1 つのカラムを含む必要があります。
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
ERROR 1136 (21S01) を解決してください。列の数が Mysql の行 1 の値の数と一致しません。
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
解決策:java.sql.SQLException: ユーザー ''@'localhost'' (パスワード: YES を使用) のアクセスが拒否されました。
-
plsql-stored-procedure ORA-06550 エラー処理
-
MySQL】1136 - 列数が1行目の値数と一致しない問題を解決
-
MySQL - ストアドプロシージャ (データ型、関数)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例