Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

prepareStatement/executeUpdateメソッド

データベースに登録する – prepareStatement/executeUpdateメソッド
PreparedStatement prepareStatement(String sql) throws SQLException
void setXxxxx(int index, T value) throws SQLException
int executeUpdate() throws SQLException
sql:発行するSQL命令
index:インデックス番号(先頭は1)
T:データ型(int、double、Stringなど)
value:値

データベースにSQL命令を発行するには、まずPreparedStatementオブジェクトを生成します。この際、引数sqlには「?」の形式でプレイスホルダーを埋め込むことができます。
プレイスホルダーとは、あとから値を埋め込むための場所です。PreparedStatement#setXxxxxメソッドを利用することで、値を設定できます(Xxxxxの部分はセットする値の型に応じて、String、Int、Double、Booleanなどとなります)。
プレイスホルダーのすべてに値を設定できたら、最後にexecuteUpdateメソッドでSQL命令を発行します。executeUpdateメソッドの戻り値は、更新された行数を表します。

SqlUpdate.java

package com.example.mynavi.sql;

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

public class SqlUpdate {

  public static void main(String[] args) {
    try (Connection db = DriverManager.getConnection(
      "jdbc:mysql:⁄⁄localhost/sample?useUnicode=true&characterEncoding=UTF-8&useSSL=true", "root", "root")) {
      PreparedStatement ps = db.prepareStatement(
        "INSERT INTO member (id, nam, sex, age) VALUES (?, ?, ?, ?)");
      ps.setString(1, "2016002");
      ps.setString(2, "佐藤健太");
      ps.setString(3, "男");
      ps.setInt(4, 35);
      int result = ps.executeUpdate();
      System.out.println(result + "行が追加されました。");
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

↓

1行が追加されました。

ここではINSERT命令(挿入)を実行していますが、UPDATE(更新)、DELETE(削除)命令も同様に実行できます。

関連ページ
executeQuery

データベース
データベースの準備
データベースに接続/切断する
prepareStatement/executeUpdateメソッド
executeQueryメソッド
setAutoCommit/commit/rollbackメソッド

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職