目次
Research Engineer
JDBC (Java Database Connectivity) は、MySQL や PostgreSQL といった数々のSQLデータベース、あるいはスプレッドシートなどのデータファイルにJavaからアクセスするためのAPIです。アクセス先ごとに専用のドライバが提供されているため、事前にインストールしておく必要があります。ここではMySQLへの接続を例に取り、基本的なサンプルプログラムを紹介します。
JDBCドライバのインストール
ダウンロード
まず、MySQLのダウンロードページにアクセスします。そのページ内にある、"MySQL Connectors" というリンクをクリックすると、MySQLのドライバ一覧が表示されます。ここではJavaのJDBCドライバが必要ですので、"Connector/J" をクリックします。表示されたダウンロードページのプルダウンから "Platform Independent" を選択し、zipまたはtarのいずれかをダウンロードおよび解凍してください。
インストール
解凍したフォルダを適当な場所、例えば "C:\Program Files\Java" 内に移動させ、環境変数CLASSPATHにjarファイル "mysql-connector-java-5.1.31-bin.jar" (ダウンロードしたバージョンによってファイル名は若干異なります) へのパス (例: "C:\Program Files\Java\mysql-connector-java-5.1.31\mysql-connector-java-5.1.31-bin.jar") をセミコロン区切りで追加することで、インストールが完了します。
SQLクエリを実行するサンプルプログラム
jdbc_sample.java
import java.sql.*;
class JdbcSample {
public static void main (String[] args) {
try {
// 先程インストールしたMySQLのドライバを指定
Class.forName("com.mysql.jdbc.Driver");
// MySQLデータベースに接続 (DB名,ID,パスワードを指定)
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost/YOUR_DBNAME?"+
"user=USER_ID&password=PASSWORD");
// ステートメントを作成
Statement stmt = conn.createStatement();
// INSERT
stmt.executeUpdate("INSERT INTO users (id, email) VALUES (1001,'someone01@example.com')");
stmt.executeUpdate("INSERT INTO users (id, email) VALUES (1002,'someone02@example.com')");
// DELETE
stmt.executeUpdate("DELETE FROM users where id=1001");
// UPDATE
stmt.executeUpdate("UPDATE users SET email='updated@example.com' where id=1002");
// SELECT
ResultSet rset = stmt.executeQuery("SELECT id, email FROM users");
while ( rset.next() ) {
System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); // ()内は列番号です
}
// 結果セットをクローズ
rset.close();
// ステートメントをクローズ
stmt.close();
// 接続をクローズ
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
実行結果例
javaソースファイルがutf-8で保存されている場合でかつ環境設定がutf-8でない場合は、"-encoding utf-8" でエンコーディングを明記する必要があります。
$ javac -encoding utf-8 jdbc_sample.java && java JdbcSample
1002 updated@example.com
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Spring Security フォームログインのサンプルコードSpring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
- Java配列の宣言方法 (C/C++との違い)Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
- PlantUML による UML 図の描き方PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。 インストール方法の選択 Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine ...
- Akka HTTP サンプルコード (Scala)Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
- Kestrel の使用例Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...