JDBCステートメントオブジェクトインスタンス
以下は、次の3つのクエリを使用し、指示を開閉と閉じる例を示します。
boolean execute(string sql):結果セットオブジェクトを取得できる場合、boolean値を返し、それ以外の場合はfalseを返します。この方法を使用して、SQL DDLステートメントを実行するか、実際の動的SQLを使用する場合。
int executeUpdate(String SQL):影響を受けるSQLステートメントによって実行される行の数を返します。この方法を使用して実行し、SQLステートメントの影響を受けた行を取得することを望んでいます - たとえば、ステートメントを挿入、更新、または削除します。
Resultset executeQuery(String SQL):resustersetオブジェクトを返します。選択されたステートメントを使用するのと同じように、結果セットを取得するときは、この方法を使用します。
前の章の環境とデータベースのインストールに基づいたこのサンプルコードが書かれています。
次の例をコピーしてjdbcexample.java、以下に示すようにコンパイルして実行します。
//ステップ1。必要なpackagesimport java.sql。*; public class jdbcexample {// jdbcドライバー名とデータベースurl static final string jdbc_driver = "com.mysql.jdbc.driver";静的最終文字列db_url = "jdbc:mysql:// localhost/emp"; //データベース資格情報静的な最終文字列ユーザー= "username";静的な最終文字列パス= "パスワード"; public static void main(string [] args){connection conn = null;ステートメントstmt = null; try {//ステップ2:JDBCドライバーclass.fornameを登録する( "com.mysql.jdbc.driver"); //ステップ3:接続system.out.println( "データベースへの接続..."); conn = drivermanager.getConnection(db_url、user、pass); //ステップ4:クエリSystem.out.println( "作成ステートメント...")を実行する; stmt = conn.createstatement(); string sql = "更新従業員は年齢を設定します= 30ここでid = 103"; //真の結果セットを返すかどうかを確認します。 boolean ret = stmt.execute(sql); system.out.println( "return値は:" + ret.toString()); // ID = 103でレコードの年齢を更新しましょう。 int rows = stmt.executeupdate(sql); System.out.println( "rowsの影響:" + rows); //すべてのレコードを選択して表示します。 sql = "IDを選択、最初、最後、従業員からの年齢";結果rs = stmt.executequery(sql); //ステップ5:結果セットからデータを抽出しますwhile(rs.next()){//列名前で取得int id = rs.getint( "id"); int age = rs.getint( "age");文字列first = rs.getString( "first");文字列last = rs.getString( "last"); //値system.out.print( "id:" + id); System.out.print( "、age:" + age); System.out.print( "、first:" + first); system.out.println( "、last:" + last); } //ステップ6:クリーンアップ環境rs.Close(); stmt.close(); conn.close(); } catch(sqlexception se){// jdbc se.printstacktrace()のエラーを処理します。 } catch(例外e){// class.forname e.printstacktrace()のエラーを処理します。 }最後に{//最後にブロックはリソースを閉じるために使用されます{if(stmt!= null)stmt.close(); } catch(sqlexception se2){} //私たちができることは何もありません{if(conn!= null)conn.close(); } catch(sqlexception se){se.printstacktrace(); } //最後にtry try} // try system.out.println( "goodbye!"); } // end main} // jdbcexampleを終了します次に、上記の例を次のようにコンパイルします。
C:> Javac jdbcexample.java
jdbcexampleを実行すると、次の結果が生成されます。
C:> Java jdbcexample
データベースへの接続...ステートメントの作成...返品値IS:falserowsの影響:1ID:100、年齢:18、最初:Zara、last:101、Age:25、First:Mahnaz、Last:Fatmaid:102、Age:30、First:Zaid:Khanid:103、Age:30、First:Mitalgoodbye!
jdbc callablestatementオブジェクトインスタンス
以下は、次のgetempname()とともにcallablestatementを使用したmysqlストアドプロシージャの例です。
EMPデータベースにストアドプロシージャが作成されていることを確認してください。 MySQLクエリブラウザを使用して実行できます。
delimiter $$ドロップ手順「emp」.`getempname` $$作成手順 `emp_id int、out emp_first varchar(255))は、id = emp_id; end $$ delimiterからemp_firstに最初に選択を開始します。
このスクリプトコードは、前の章の環境とデータベースのインストールに基づいて記述されています。
次の例をコピーしてjdbcexample.java、以下に示すようにコンパイルして実行します。
//ステップ1。必要なpackagesimport java.sql。*; public class jdbcexample {// jdbcドライバー名とデータベースurl static final string jdbc_driver = "com.mysql.jdbc.driver";静的最終文字列db_url = "jdbc:mysql:// localhost/emp"; //データベース資格情報静的な最終文字列ユーザー= "username";静的な最終文字列パス= "パスワード"; public static void main(string [] args){connection conn = null; callablestatement stmt = null; try {//ステップ2:JDBCドライバーclass.fornameを登録する( "com.mysql.jdbc.driver"); //ステップ3:接続system.out.println( "データベースへの接続..."); conn = drivermanager.getConnection(db_url、user、pass); //ステップ4:クエリSystem.out.println( "作成ステートメント...")を実行する; string sql = "{call getempname(?、?)}"; stmt = conn.preparecall(sql); //最初にパラメーターでバインドし、次にパラメーターint empid = 102をバインドします。 stmt.setint(1、empid); //これは102 // 2番目のパラメーターが出ているためにIDを102 //登録するため、stmt.registeroutparameter(2、java.sql.types.varchar); //実行メソッドを使用して、ストアドプロシージャを実行します。 System.out.println( "ストアドプロシージャの実行..."); stmt.execute(); // getxxxで従業員名を取得する方法文字列empname = stmt.getString(2); system.out.println( "emp name with id:" + empid + "is" + empname); stmt.close(); conn.close(); } catch(sqlexception se){// jdbc se.printstacktrace()のエラーを処理します。 } catch(例外e){// class.forname e.printstacktrace()のエラーを処理します。 }最後に{//最後にブロックはリソースを閉じるために使用されます{if(stmt!= null)stmt.close(); } catch(sqlexception se2){} //私たちができることは何もありません{if(conn!= null)conn.close(); } catch(sqlexception se){se.printstacktrace(); } //最後にtry try} // try system.out.println( "goodbye!"); } // end main} // jdbcexampleを終了します次に、上記の例を次のようにコンパイルします。
C:> Javac jdbcexample.java
jdbcexampleを実行すると、次の結果が生成されます。
C:> Java jdbcexample
データベースへの接続...ステートメントの作成...ストアドプロシージャの実行... IDでEMP名:102はZaidgoodbyeです!