ステートメントの実行
Code からの接続 後、Statement クラスを使用してSQL ステートメントを実行できます。パラメータ化されたステートメントを実行するには、プリペアドステートメントの使用 を参照してください。
Select
データを返すSQL ステートメントを実行するには、Statement クラスの汎用の実行メソッドを使用するかexecuteQuery メソッドを使用します。クエリの結果を返すには、Statement クラスのgetResultSet メソッドを呼び出します。
次の例では、実行メソッドを呼び出して、返された結果を反復処理します。
Statement stat = conn.createStatement(); boolean ret = stat.execute("SELECT actor.attributes.email, repository.name FROM [publicdata].[samples].github_nested"); if (ret) { ResultSet rs=stat.getResultSet(); while(rs.next()) { for(int i=1;i<=rs.getMetaData().getColumnCount();i++) { System.out.println(rs.getMetaData().getColumnLabel(i) +"="+rs.getString(i)); } } }
Insert
INSERT を実行するには、汎用の実行メソッド、またはStatement クラスのexecuteUpdate メソッドを使用します。
新しいレコード用に生成されたキーを取得するには、メソッド呼び出しでStatement.RETURN_GENERATED_KEYS を指定します。ステートメントの実行後にStatement.getGeneratedKeys を呼び出します。次に例を示します。
Statement stat = conn.createStatement(); int count = stat.executeUpdate("INSERT INTO [publicdata].[samples].github_nested (actor.attributes.email, repository.name) VALUES ('actor.attributes.email','repository.name')",Statement.RETURN_GENERATED_KEYS ); ResultSet rs = stat.getGeneratedKeys(); while(rs.next()) { for(int i=1;i<=rs.getMetaData().getColumnCount();i++) { System.out.println(rs.getMetaData().getColumnLabel(i) +"="+rs.getString(i)); } }
Update
更新を実行するには、汎用の実行メソッド、またはStatement クラスのexecuteUpdate メソッドを使用します。getUpdateCount メソッドを呼び出して、影響を受けた行数を取得できます。または、executeUpdate メソッドを呼び出します。このメソッドは行数を返します。次に例を示します。
Statement stat = conn.createStatement(); stat.execute("UPDATE [publicdata].[samples].github_nested SET actor.attributes.email = 'XXX' , repository.name = 'YYY' WHERE Id = '1'"); int count = stat.getUpdateCount();
Delete
削除を実行するには、汎用の実行メソッド、またはStatement クラスのexecuteUpdate メソッドを使用します。getUpdateCount メソッドを呼び出して、影響を受けた行数を取得できます。または、executeUpdate メソッドを呼び出します。このメソッドは行数を返します。次に例を示します。
Statement stat = conn.createStatement();
stat.execute("DELETE FROM [publicdata].[samples].github_nested WHERE Id = '1'");
int count = stat.getUpdateCount();