Java MySQL 接続
この章では、Java で JDBC を使用して MySQL データベースに接続する方法を紹介します。
Java で MySQL に接続するにはドライバパッケージが必要です。最新版のダウンロードアドレスは次のとおりです:http://dev.mysql.com/downloads/connector/j/、解凍すると jar ライブラリファイルが得られ、対応するプロジェクトにそのライブラリファイルをインポートします。

このサイトが提供する jar パッケージをダウンロードできます:mysql-connector-java-5.1.39-bin.jar
この例では Eclipse を使用しています。jar パッケージをインポートします:

MySQL 8.0 以上のバージョンのデータベース接続は少し異なります:
-
1. MySQL 8.0 以上の場合のドライバパッケージのバージョンmysql-connector-java-8.0.16.jar。
-
2、com.mysql.jdbc.Driver置き換えますcom.mysql.cj.jdbc.Driver。
-
MySQL 8.0 以上では SSL 接続を確立する必要がないため、明示的に無効にする必要があります。
-
allowPublicKeyRetrieval=true は、クライアントがサーバーから公開鍵を取得することを許可します。
-
最後に CST を設定する必要もあります。
ドライバのロードとデータベースへの接続方法は次のとおりです:
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","password");
テストデータの作成
次に、MySQL に サンプル データベースを作成し、websites データテーブルを作成します。テーブル構造は次のとおりです:
CREATE TABLE `websites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT 'サイト名',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa ランキング',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
いくつかのデータを挿入します:
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', 'サンプル', 'http://www.example.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
データテーブルは次のように表示されます:

データベースへの接続
以下の例では、JDBC を使用して MySQL データベースに接続しています。ユーザー名やパスワードなどのデータは、開発環境に合わせて設定する必要があることに注意してください:
MySQLDemo.java ファイルコード:
package com.サンプル.test;
import java.sql.*;
public class MySQLDemo {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/サンプル";
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
Class.forName(JDBC_DRIVER);
System.out.println("データベースに接続...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("Statement オブジェクトをインスタンス化...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, url FROM websites";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String url = rs.getString("url");
System.out.print("ID: " + id);
System.out.print(", サイト名:" + name);
System.out.print(", サイト URL:" + url);
System.out.print("\n");
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
上記のサンプルを実行した出力結果は次のとおりです:

その他の拡張