この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
データベースは作成されているものとし、データベース名・テーブル名は下記とします。
データベース名:「cm」 テーブル名: 「music」
ドライバの設定
今回はMySQLを使用するので、接続するために「JDBCドライバ」をダウンロードしてプロジェクトに結びつけます。 MySQL::Download Connector/J
Eclipseの場合、プロジェクトフォルダを選択して右クリックから、 「Properties」 > 「Java Build Path」 > 「Libraries」タブ > 「Add External JARs...」 からダウンロードした ”mysql-connector-java-x.x.xx-bin.jar” を選択。 最後に「OK」か「Apply」を押して決定。
「Referenced Libraries」が生成されてドライバが登録されていると思います。
テーブル作成
下記のSQL文を実行すると...
CREATE TABLE music(
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
title VARCHAR(50) NOT NULL,
year INTEGER(4) NOT NULL,
PRIMARY KEY(id)
);
こんなテーブルが出来上がりました。
ここに登録して行きます。
コード
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionClass {
static final String URL = "jdbc:mysql://localhost/cm";
static final String USERNAME = "user";
static final String PASSWORD = "pass";
public static void main(String[] args) {
try (
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
Statement statement = connection.createStatement();
) {
String sql = "INSERT INTO music VALUES (1, 'Michael Jackson', 'Butterflies', 2001);";
int result = statement.executeUpdate(sql);
System.out.println("結果1:" + result);
sql = "INSERT INTO music (name, title, year) VALUES ('Aril Brikha', 'Groove La Chord', 1998);";
result = statement.executeUpdate(sql);
System.out.println("結果2:" + result);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
解説
ConnectionでMySQLのデータベースに接続をするためにデータベースURL、ユーザ名、パスワードを設定。 データベースURLはこんな感じで。
jdbc:mysql:// ホスト名 / データベース名
Statement でSQL文をデータベースに送るオブジェクトを生成。 Connection と Statement は AutoCloseable が設定されていて try-catch-resources で記述しているので、 close() (リソース解放処理)が自動的に実行されます。
try (
Connection connection = DriverManager.getConnection("データベースURL", "ユーザ名", "パスワード");
Statement statement = connection.createStatement();
) }
SQL文で全カラムに値を設定しているので、カラム名の指定をせずに statement.execute(sql) で実行。 その返り値を出力します。
String sql = "INSERT INTO music VALUES (1, 'Michael Jackson', 'Butterflies', 2001);";
int result = statement.executeUpdate(sql);
System.out.println("結果1:" + result);
"id"を指定せずにオートインクリメントを利用するSQL文を実行。 その返り値を出力します。
sql = "INSERT INTO music (name, title, year) VALUES ('Aril Brikha', 'Groove La Chord', 1998);";
result = statement.executeUpdate(sql);
System.out.println("結果2:" + result);
出力結果
登録に成功するとINSERT文それぞれで更新した行数が返ります。
結果1:1
結果2:1
テーブル確認
以上になります。
まとめ
前回の「CSVファイルをJavaで読み込んで文字コードを変換」と同様、当時に自分が欲しかった内容を記事にしました。
今回はSQL文の実行に Statement を使用して一つずつの結果を見て行きましたが、複数のSQL文をまとめて処理できる PreparedStatement も有るので別の機会に紹介しようと思います。