【Java】MySQLデータベースで登録・更新・削除する方法

Java

はじめに

今回は、JavaでMySQLデータベースからデータの登録・更新・削除する方法について勉強したことを記載していきたいと思います。

 

前提

前提として、データベースの接続を実施することができること。
以下記事を参考にしてみてください。

【Java】MySQLデータベースの接続方法について(接続からSQL発行まで) – SEもりのLog java

 

登録(INSERT)

データベースに登録するには、「PreparedStatement」クラスを使用します。実際クエリを発行するメソッドはexecuteUpdate()でINSERT文を設定しておくことで設定したクエリを実行します。
「?」の文字列を使用することでパラメータを自由に変更することも可能です。

 

   public int testInsert() {

      try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
         System.out.println("接続成功");

         String insertSQL = "INSERT INTO test_database.test(id, name) VALUES (?, ?)";
         try (PreparedStatement ps = conn.prepareStatement(insertSQL)) {
            ps.setLong(1, 1);
            ps.setString(2, "test");

            int result = ps.executeUpdate();
            return result;
         } catch(SQLException se) {
            se.printStackTrace();
         } catch(Exception e) {
            e.printStackTrace();
         }
      } catch(SQLException se) {
         se.printStackTrace();
      } catch(Exception e) {
         e.printStackTrace();
      } 
      return 0;
   }

 

更新(UPDATE)

データの更新も同様に「PreparedStatement」クラスを使用します。実際クエリを発行するメソッドはexecuteUpdate()でUPDATE文を設定しておくことで設定したクエリを実行します。

 

   public int testUpdate() {

      try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
         System.out.println("接続成功");

         String insertSQL = "UPDATE test_database.test SET  name = ? WHERE id = ?";
         try (PreparedStatement ps = conn.prepareStatement(insertSQL)) {
            ps.setString(1, "test2");
            ps.setLong(2, 1);

            int result = ps.executeUpdate();
            return result;
         } catch(SQLException se) {
            se.printStackTrace();
         } catch(Exception e) {
            e.printStackTrace();
         }
      } catch(SQLException se) {
         se.printStackTrace();
      } catch(Exception e) {
         e.printStackTrace();
      } 
      return 0;
   }

 

削除(DELETE)

データの削除も同様に「PreparedStatement」クラスを使用します。

 

   public int testDelete() {

      try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
         System.out.println("接続成功");

         String insertSQL = "DELETE FROM test_database.test WHERE id = ?";
         try (PreparedStatement ps = conn.prepareStatement(insertSQL)) {
            ps.setLong(1, 1);

            int result = ps.executeUpdate();
            return result;
         } catch(SQLException se) {
            se.printStackTrace();
         } catch(Exception e) {
            e.printStackTrace();
         }
      } catch(SQLException se) {
         se.printStackTrace();
      } catch(Exception e) {
         e.printStackTrace();
      } 
      return 0;
   }

 

トランザクション制御について

Javaでトランザクションの制御をする場合、自動コミットモードを無効にすることで可能となります。INSERT/UPDATE/DELETE等が発生するとトランザクションが発行され、コミット/ロールバックされるまでトランザクション制御が発生します。

 

   public int testInsert() {
      try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
         System.out.println("接続成功");
         // オートコミットをfalseに設定
         conn.setAutoCommit(false);

         String insertSQL = "INSERT INTO test_database.test(id, name) VALUES (?, ?)";
         try (PreparedStatement ps = conn.prepareStatement(insertSQL)) {
            ps.setLong(1, 1);
            ps.setString(2, "test");

            int result = ps.executeUpdate();

            // コミット
            conn.commit();

            return result;
         } catch(SQLException se) {
            // ロールバック
            conn.rollback();
            se.printStackTrace();
         } catch(Exception e) {
            // ロールバック
            conn.rollback();
            e.printStackTrace();
         }
      } catch(SQLException se) {
         se.printStackTrace();
      } catch(Exception e) {
         e.printStackTrace();
      } 
      return 0;
   }

 

ドキュメント

【MySQL】
MySQL

 

最後に

Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)

以上、ログになります。
これからも継続していきましょう!!

Javaサーバーサイド関連
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました