JavaでMySQLデータベースにデータを挿入する方法をわかりやすく解説
JavaからMySQLデータベースにデータを挿入するには、SQLのINSERTコマンドを使用します。基本的な構文は以下の通りです。
INSERT INTO テーブル名(カラム名1, カラム名2, ......カラム名N) VALUES(値1, 値2, ......値N);
ここからは、Javaプログラムを使って実際にMySQLデータベースへレコードを挿入する手順を、順を追って見ていきましょう。
ステップ1:MySQLでテーブルを作成する
まず、データの挿入先となるテーブルをMySQL側に作成します。以下のクエリを実行してください。
mysql> create table InsertDemo -> ( -> Id int, -> Name varchar(200), -> Age int -> ); Query OK, 0 rows affected (0.97 sec)
これで、「Id」「Name」「Age」の3つのカラムを持つテーブル「InsertDemo」が作成されました。
ステップ2:JDBCでMySQLに接続し、レコードを挿入する
次に、テーブル「InsertDemo」にレコードを挿入するためのJavaコードを紹介します。データ挿入の前に、JDBC(Java Database Connectivity)を使ってMySQLデータベースへの接続を確立する必要があります。
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
public class JavaInsertDemo {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
System.out.println(e);
}
conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/business", "Manish", "123456");
System.out.println("Connection is created successfully:");
stmt = (Statement) conn.createStatement();
String query1 = "INSERT INTO InsertDemo " + "VALUES (1, 'John', 34)";
stmt.executeUpdate(query1);
query1 = "INSERT INTO InsertDemo " + "VALUES (2, 'Carol', 42)";
stmt.executeUpdate(query1);
System.out.println("Record is inserted in the table successfully..................");
} catch (SQLException excep) {
excep.printStackTrace();
} catch (Exception excep) {
excep.printStackTrace();
} finally {
try {
if (stmt != null)
conn.close();
} catch (SQLException se) {}
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Please check it in the MySQL Table......... ………..");
}
}
コードのポイント
- Class.forName():JDBCドライバをロードし、MySQLとの通信を可能にします。
- DriverManager.getConnection():URL・ユーザー名・パスワードを指定してデータベース接続を取得します。
- createStatement():SQL文を実行するためのStatementオブジェクトを生成します。
- executeUpdate():INSERT文を実行し、テーブルにレコードを追加します。
- finallyブロック:例外の発生有無にかかわらず、接続やリソースを確実にクローズします。
なお、本サンプルでは旧式のドライバクラス「com.mysql.jdbc.Driver」を使用していますが、MySQL Connector/J 8.0以降では「com.mysql.cj.jdbc.Driver」に変更されているため、環境に合わせて使い分けてください。
実行結果
プログラムを実行すると、コンソールには以下のような出力が表示されます。

ステップ3:SELECT文で挿入結果を確認する
データが正しくテーブルに挿入されたかどうかを確認するには、SELECT文を使用します。
mysql> select * from InsertDemo;
実行結果は以下の通りです。
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 1 | John | 34 | | 2 | Carol | 42 | +------+-------+------+ 2 rows in set (0.00 sec)
上記の出力から、2件のレコード(JohnさんとCarolさんの情報)が正常にMySQLデータベースへ挿入されたことが確認できました。
補足:PreparedStatementの活用をおすすめ
固定値を挿入する場合はStatementで十分ですが、ユーザー入力などを扱う場合はPreparedStatementを使用することで、SQLインジェクション攻撃を防ぎ、パフォーマンスも向上させることができます。実務開発では、プレースホルダー(?)を使ったPreparedStatementの利用が推奨されています。
-
JavaでMySQLテーブルに1つのカラムのみを挿入する方法
JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m
-
JavaでMySQLデータベースにNULL値を挿入する方法
JavaからデータベースにNULL値を挿入したいケースはよくあります。その場合、PreparedStatementのsetNull()メソッドを使用します。基本的な構文は以下の通りです。ps.setNull(インデックス番号, Types.NULL);この記事では、実際にサンプルを通してNULL値の挿入手順を解説します。1. テーブルの作成まず、MySQLでテスト用のテーブルを作成します。mysql> create table DemoTable1893 ( FirstName varchar(20) ); Query OK, 0 rows affected (0