Java MySQLにJDBC接続してinsert/update/deleteするサンプル

JavaでMySQL(MariaDB)へ接続してinsert/update/deleteするサンプルです。

確認環境
・XAMPP 7.1.8
・Windows 10

目次

XAMPPの環境

XAMPPのMySQLを使用します。
XAMPPのインストール方法はこちらを御覧ください。
ローカルにPHPが動く環境を作る手順(XAMPP)

データベースとテーブルの作成

1.XAMMPのMySQLにデータベース、テーブルを作成しておく必要があります。
作成方法はこちらを御覧ください。
XAMPPのphpMyAdminでDB作成からデータ取得までのサンプル

2.以下のテーブルのデータを取得します。テーブル名は「fish」です。

 

1.jarファイルの取得

1.MySQLのJDBC ドライバを取得します。
以下のMySQLのサイトにアクセスします。
http://dev.mysql.com/downloads/connector/j/

 

2.ZIP Archiveの「Download」ボタンを押します。

 

3.「No thanks,just start my download.」をクリックします。

 

4.ダウンロードしたzipを展開し以下のファイルを任意の場所に配置します。
mysql-connector-java-5.1.46-bin.jar

 

2.jarファイルをクラスパス(ビルドパス)に追加

mysql-connector-java-5.1.46-bin.jarをクラスパスに追加します。
クラスパスに追加する手順は、以下のページをご覧ください。
Eclipse 外部jarファイルをクラスパス(ビルドパス)に設定する方法

 

insert

insertのサンプルのコードです。
17行目は、プレースホルダを使用したSQLです。(?)の箇所がプレースホルダです。
25,26行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
22行目は、setAutoCommitメソッドで手動コミットするようにしています。
デフォルトは自動コミットモードです。
SQL処理が成功した場合は、29行目のcommitメソッドを実行します。
SQL処理で例外が発生した場合は、31行目のrollbackメソッドを実行します。
19-20,24行目は、try-with-resources構文です。リソースを自動でクローズします。

package test1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

/**
 *  java - mysql
 */
class Sample {

    void runSample(){

        String url = "jdbc:mysql://localhost:3306/testphp";
        String user = "root";
        String pass = "";
        String SQL = "insert into fish (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,"aji");
                
                ps.executeUpdate();
                conn.commit();
            } catch (Exception e) {
                conn.rollback();
                System.out.println("rollback");
                throw e;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            System.out.println("処理が完了しました");
        }
    }
}
public class Test1 {
    public static void main(String[] args) {
        Sample s = new Sample();
        s.runSample();
    }
}

 

update

updateのサンプルのコードです。
17行目は、プレースホルダを使用したSQLです。(?)の箇所がプレースホルダです。
25,26行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
26行目は、DBの項目(id)の型がint型のため、setIntメソッドを使用しています。
22行目は、setAutoCommitメソッドで手動コミットするようにしています。
デフォルトは自動コミットモードです。
SQL処理が成功した場合は、29行目のcommitメソッドを実行します。
SQL処理で例外が発生した場合は、31行目のrollbackメソッドを実行します。
19-20,24行目は、try-with-resources構文です。リソースを自動でクローズします。

package test1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

/**
 *  java - mysql
 */
class Sample {

    void runSample(){

        String url = "jdbc:mysql://localhost:3306/testphp";
        String user = "root";
        String pass = "";
        String SQL = "update fish set name = ? where id = ?";
        
        try(Connection conn = 
                DriverManager.getConnection(url, user, pass)){

            conn.setAutoCommit(false);
            
            try(PreparedStatement ps = conn.prepareStatement(SQL)){
                ps.setString(1,"さんま");
                ps.setInt(2,3);
                
                ps.executeUpdate();
                conn.commit();
            } catch (Exception e) {
                conn.rollback();
                System.out.println("rollback");
                throw e;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            System.out.println("処理が完了しました");
        }
    }
}
public class Test1 {
    public static void main(String[] args) {
        Sample s = new Sample();
        s.runSample();
    }
}

 

delete

deleteのサンプルのコードです。
17行目は、プレースホルダを使用したSQLです。(?)の箇所がプレースホルダです。
25行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
25行目は、DBの項目(id)の型がint型のため、setIntメソッドを使用しています。
22行目は、setAutoCommitメソッドで手動コミットするようにしています。
デフォルトは自動コミットモードです。
SQL処理が成功した場合は、28行目のcommitメソッドを実行します。
SQL処理で例外が発生した場合は、30行目のrollbackメソッドを実行します。
19-20,24行目は、try-with-resources構文です。リソースを自動でクローズします。

package test1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

/**
 *  java - mysql
 */
class Sample {

    void runSample(){

        String url = "jdbc:mysql://localhost:3306/testphp";
        String user = "root";
        String pass = "";
        String SQL = "delete from fish 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("処理が完了しました");
        }
    }
}
public class Test1 {
    public static void main(String[] args) {
        Sample s = new Sample();
        s.runSample();
    }
}

 

PreparedStatement

以下はJava8 API仕様のPreparedStatementインターフェースのリンクです。https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html

関連の記事

ローカルにPHPが動く環境を作る手順(XAMPP)
XAMPPのphpMyAdminでDB作成からデータ取得までのサンプル
Java MySQLにJDBC接続してselectするサンプル
Java 大量データを登録/更新するサンプル(addBatchメソッド)



△上に戻る