JavaでMySQLにJDBC接続してinsert/update/deleteするサンプルです。
| 確認環境 ・Windows 10 ・Java 8 ・Eclipse 4.7 ・XAMPP 7.2.8 |
目次
- insertのサンプル
- updateのサンプル
- deleteのサンプル
- プレースホルダ
- (補足)1.XAMPPの環境
- (補足)2.jarファイルを取得する
- (補足)3.jarファイルをクラスパス(ビルドパス)に追加する
insertのサンプル
MySQLにJDBC接続してインサートを実行するサンプルです。
package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class Test1 {
public static void main(String[] args) {
final String URL
= "jdbc:mysql://localhost:3306/testphp?serverTimezone=JST";
final String USER = "root";
final String PASS = "";
final String SQL = "insert into syain (name,romaji) VALUES (?,?)";
try(Connection conn =
DriverManager.getConnection(URL, USER, PASS)){
conn.setAutoCommit(false);
try(PreparedStatement ps = conn.prepareStatement(SQL)){
ps.setString(1,"竹田");
ps.setString(2,"takeda");
ps.executeUpdate();
conn.commit();
} catch (Exception e) {
conn.rollback();
System.out.println("rollback");
throw e;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
System.out.println("処理が完了しました");
}
}
}
13行目は、プレースホルダを使用したSQLです。(?)の箇所はプレースホルダです。
18行目は、setAutoCommitメソッドで手動コミットするようにしています。デフォルトは自動コミットモードです。
21,22行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
25行目は、SQL処理が成功した場合で、commitメソッドを実行します。
27行目は、SQL処理で例外が発生した場合で、rollbackメソッドを実行します。
15,16,20行目は、try-with-resources構文です。リソースを自動でクローズします。
updateのサンプル
MySQLにJDBC接続してアップデートを実行するサンプルです。
package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class Test1 {
public static void main(String[] args) {
final String URL
= "jdbc:mysql://localhost:3306/testphp?serverTimezone=JST";
final String USER = "root";
final String PASS = "";
final String SQL
= "update syain set name = ? ,romaji = ? where id = ?";
try(Connection conn =
DriverManager.getConnection(URL, USER, PASS)){
conn.setAutoCommit(false);
try(PreparedStatement ps = conn.prepareStatement(SQL)){
ps.setString(1,"山田");
ps.setString(2,"yamada");
ps.setInt(3,1);
ps.executeUpdate();
conn.commit();
} catch (Exception e) {
conn.rollback();
System.out.println("rollback");
throw e;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
System.out.println("処理が完了しました");
}
}
}
14行目は、プレースホルダを使用したSQLです。(?)の箇所はプレースホルダです。
19行目は、setAutoCommitメソッドで手動コミットするようにしています。
デフォルトは自動コミットモードです。
22-24行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
24行目は、DBの項目(id)の型がint型のため、setIntメソッドを使用しています。
27行目は、SQL処理が成功した場合で、commitメソッドを実行します。
29行目は、SQL処理で例外が発生した場合で、rollbackメソッドを実行します。
16,17,21行目は、try-with-resources構文です。リソースを自動でクローズします。
deleteのサンプル
MySQLにJDBC接続して削除を実行するサンプルです。
package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class Test1 {
public static void main(String[] args) {
final String URL
= "jdbc:mysql://localhost:3306/testphp?serverTimezone=JST";
final String USER = "root";
final String PASS = "";
final String SQL = "delete from syain where id = ?";
try(Connection conn =
DriverManager.getConnection(URL, USER, PASS)){
conn.setAutoCommit(false);
try(PreparedStatement ps = conn.prepareStatement(SQL)){
ps.setInt(1,4);
ps.executeUpdate();
conn.commit();
} catch (Exception e) {
conn.rollback();
System.out.println("rollback");
throw e;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
System.out.println("処理が完了しました");
}
}
}
13行目は、プレースホルダを使用したSQLです。(?)の箇所はプレースホルダです。
18行目は、setAutoCommitメソッドで手動コミットするようにしています。デフォルトは自動コミットモードです。
21行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
24行目は、SQL処理が成功した場合で、commitメソッドを実行します。
26行目は、SQL処理で例外が発生した場合で、rollbackメソッドを実行します。
15,16,20行目は、try-with-resources構文です。リソースを自動でクローズします。
プレースホルダ
- SQL文中の(?)がプレースホルダです。動的に値をセットできます。
- 入力される不正な文字を抑止できるのでSQLインジェクション対策になります。
- 固定文字列のSQLの部分がプリコンパイルされるので実行速度が上がります。
PreparedStatement
- PreparedStatementは、プリコンパイルされたSQL文を表すオブジェクトです。
- 以下はJava8 API仕様のPreparedStatementインターフェースのリンクです。https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html
(補足)1.XAMPPの環境
XAMPPのMySQLを使用します。
XAMPPのインストール方法は以下を参照願います。
データベースとテーブル
XAMMPのMySQLにデータベースとテーブルを作成しておく必要があります。
作成方法は以下を参照願います。
XAMPP phpMyAdminでデータベースを作成する手順
XAMPP phpMyAdminでテーブルを作成する手順
以下のテーブルを使用します。テーブル名は「syain」です。

(補足)2.jarファイルを取得する
1.MySQLのJDBC ドライバを取得します。
以下のMySQLのサイトにアクセスします。
http://dev.mysql.com/downloads/connector/j/
2.Select Operating SystemでPlatform Independentを選択するとダウンロードボタンが表示されます。ZIP Archiveの「Download」ボタンを押します。

3.「No thanks,just start my download.」をクリックするとダウンロードが始まります。
4.ダウンロードしたzipを展開し以下のファイルを任意の場所に配置します。
mysql-connector-java-8.0.12.jar
(補足)3.jarファイルをクラスパス(ビルドパス)に追加する
mysql-connector-java-8.0.12.jarをクラスパスに追加します。
クラスパスに追加する手順は、以下を参照願います。
Eclipse 外部jarファイルをクラスパス(ビルドパス)に設定する方法
関連の記事
XAMPPをインストールする手順(Windows10)
XAMPP phpMyAdminでデータベースを作成する手順
XAMPP phpMyAdminでテーブルを作成する手順
Java MySQLにJDBC接続してselectするサンプル
Java 大量データを登録/更新するサンプル(addBatchメソッド)
Java DtoとDaoでDBを検索するサンプル