などと声明、PreparedStatementのSQLステートメントが実行される
ステートメントを作成異なり、SQLステートメントのPreparedStatement作成するために応じて
添加することを、それがパラメータを設定することにより可能である、むしろスプライシングステートメントとして文字列を使用してより適切な値を割り当てます
インポートのjava.sql.Connection; インポートのjava.sql.DriverManager。 インポートのjava.sql.PreparedStatement; 輸入ます。java.sql.SQLException; パブリック クラスTestJDBC { 公共 静的 ボイドメイン(文字列[]引数){ 試みる{ Class.forNameの( "はcom.mysql.jdbc.Driverを" )。 } キャッチ(ClassNotFoundExceptionが電子){ e.printStackTrace(); } 文字列のSQL = "ヒーロー値を挿入(ヌル、、、???)" 。 試します(接続C =したDriverManager.getConnection( "JDBC:MySQLの://127.0.0.1:?3306 / how2java characterEncoding = UTF-8"、 "根"、 "ADMIN" ); // SQL文によるとPreparedStatementの作成 にPreparedStatement PS = C .prepareStatement(SQL); ){ // 設定パラメータ ps.setString(1、 "コムギ" ); ps.setFloat( 2、313.0f ); ps.setInt( 3、50 ); //は実行 ps.executeを( ); } キャッチ(のSQLException E){ // TODO自動生成されたブロックキャッチ e.printStackTrace(); } } }
声明では、貧しい文字列の連結、可読性と保守性を必要とします
文字列のSQL = "ヒーロー値を挿入(NULL、" + " '提莫'" + " "+ 313.0f +"、 "+ 50 +")"。
PreparedStatementのパラメータ設定、読み、作るのは簡単ミス
文字列のSQL = "ヒーロー値を挿入(ヌル、、、???)"。
パブリック クラスTestJDBC { 公共 静的 ボイドメイン(文字列[]引数){ 試みる{ Class.forNameの( "はcom.mysql.jdbc.Driverを" )。 } キャッチ(ClassNotFoundExceptionが電子){ e.printStackTrace(); } 文字列のSQL = "ヒーロー値を挿入(ヌル、、、???)" 。 してみてください(接続C =したDriverManager.getConnection( "JDBCを:mysqlの://127.0.0.1:?3306 / how2java characterEncoding = UTF-8"、 "根"、 "管理者" ); ステートメントS = c.createStatement();c.prepareStatement(SQL); ){ // ステートメントは、文字列の連結、貧弱可読性と保守の必要な 文字列sql0 = "ヒーロー値を挿入 (NULL、" + " ' + ""コムギ'" +を+ 313.0f "" + 50 + ")" ; s.execute(sql0); // PreparedStatementのパラメータ設定は、読みやすさは、とミスをしない // ),,,ヌル(ヒーロー値。INSERT INTO」??? "; ps.setString(1、。"コムギ" ); ps.setFloat( 2、313.0f ); ps.setInt( 3、50 ); ps.execute()。 } キャッチ(のSQLException E){ // TODO自動生成されたcatchブロック e.printStackTrace(); } } }
オリジナル住所:のhttp://how2j.cn/k/jdbc/jdbc-preparedstatement/388.html#nowhere
実行同じポイントのexecuteUpdateを:追加、削除、変更を実行することが可能です、
パブリック クラスTestJDBC { 公共 静的 ボイドメイン(文字列[]引数){ 試みる{ Class.forNameの( "はcom.mysql.jdbc.Driverを" )。 } キャッチ(ClassNotFoundExceptionが電子){ e.printStackTrace(); } 試みる(接続C =たDriverManager.getConnection( "JDBCを:MySQLの://127.0.0.1:3306 / how2java characterEncoding = UTF-8"、 "ルート"、 "管理者" ); ステートメントS = c.createStatement()。 ){ 文字列sqlInsert = "は、ヌル(ヒーロー値に挿入'盖伦'、616100)を" 。= "ID = 100ヒーローから削除" ; ストリングsqlUpdate = "更新ヒーローセットHP = 300 ID = 100" 。 // 相同点:都可以执行增加、删除、修改 s.execute(sqlInsert)。 s.execute(sqlDelete)。 s.execute(sqlUpdate)。 s.executeUpdate(sqlInsert)。 s.executeUpdate(sqlDelete)。 s.executeUpdate(sqlUpdate)。 } キャッチ(のSQLException E){ // TODO自動生成キャッチブロック e.printStackTrace(); } } }
違い:
異なる1:
実行クエリを実行することができる
次いでgetResultSetメソッドを、結果セットが取り出される
のexecuteUpdateが実行されないクエリ
異なる2:
実行戻るに、クエリの実装は、falseを実行インサートは、削除することを示すこと本当のブール型を、更新等
executeUpdateのは、intを返し、データの多くの部分が影響を受けているかを示します
パブリック クラスTestJDBC { 公共 静的 ボイドメイン(文字列[]引数){ 試み{ Class.forNameの( "はcom.mysql.jdbc.Driver" ); } キャッチ(ClassNotFoundExceptionがE){ e.printStackTrace(); } 試み(C接続たDriverManager.getConnection =( "?JDBC:MySQLの://127.0.0.1:3306 / how2java = UTF-8 characterEncoding。"、 "ルート"、 "管理" ); ステートメントS = c.createStatement()){ // 異なります1:クエリを実行し、実行することができる // getResultSetメソッドは、結果セットから取り出し、次いで "ヒーローSELECT * FROM" SQLSelect =文字列; s.execute(SQLSelect) のResultSet RS = s.getResultSet(); 一方(rs.next()){ System.out.printlnは(rs.getInt( "ID" )) ; } // のexecuteUpdateは実行できないクエリ // s.executeUpdate(SQLSelect); // 異なる2: // 戻りをboolean型を実行し、真のクエリ、偽表現の実装を行うことで、挿入、削除、更新、等 ブール isSelect = s.execute(SQLSelect); System.out.printlnは(isSelect); // のexecuteUpdate intを返すには、データの多くの部分が影響を受けているかを示します ストリングsqlUpdate = "更新ヒーローセットHP = 300 ID <100" 。 INT番号= s.executeUpdate(sqlUpdate)。 System.out.println(番号) } キャッチ(のSQLException E){ // TODO自動生成キャッチブロック e.printStackTrace(); } } }
オリジナル住所:のhttp://how2j.cn/k/jdbc/jdbc-execute/389.html#nowhere