1. ホーム
  2. java

[解決済み] JavaとMySQLデータベースの接続

2022-03-17 17:32:58

質問

Java で MySQL データベースに接続する方法は?

試してみると

java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)

または

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

または

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

解決方法は?

DriverManager はかなり古いやり方です。より良い方法は DataSource アプリサーバコンテナがすでに設定しているものを探すか、または、アプリサーバコンテナがすでに設定しているものを探します。

Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDB");

または、データベースドライバから直接インスタンスを作成し、設定します。

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("scott");
dataSource.setPassword("tiger");
dataSource.setServerName("myDBHost.example.org");

を作成し、そこから接続を取得するのは上記と同様です。

Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ID FROM USERS");
...
rs.close();
stmt.close();
conn.close();