JDBC と MySQL
このページでは Java プログラムから MySQL データベースにアクセスできるように設定する方法を説明します。
インストール
MySQL のインストール
ネットワークからのアクセスを許可するために、/etc/mysql/my.cnf
の以下の行をコメントアウトしてください:
#skip-networking
それから MySQL サービスを起動してください。
JDBC のインストール
使用している MySQL にあわせて適切な JDBC ドライバーをインストールしてください:
- mariadb-jdbcAUR - Arch Linux でデフォルトのサーバー
- mysql-jdbcAUR[リンク切れ: パッケージが存在しません] - Oracle 製のサーバー
AUR パッケージを使用する場合、以下のようにドライバーを JRE の外部ライブラリディレクトリにリンクする必要があります:
mariadb-jdbc の場合:
# ln -s /usr/share/java/mariadb-jdbc/mariadb-java-client.jar /usr/lib/jvm/default/jre/lib/ext/
mysql-jdbc の場合:
# ln -s /usr/share/java/mysql-jdbc/mysql-connector-java-bin.jar /usr/lib/jvm/default/jre/lib/ext/
テスト
以下のコマンドを実行して MySQL のコマンドラインツールを開いてください:
$ mysql
テストデータベースの作成
以下のコマンドで test データベースが作成され、パスワードが bar の foo ユーザーに全ての権限が与えられます。名前は適当に決めてください。
create database test; grant all privileges on test.* to user@localhost identified by "bar"; flush privileges;
その後、Ctrl + d
でコマンドラインツールを抜けてください。
テストプログラムの作成
テキストエディタを使って以下の内容の DBDemo.java
ファイルを作成してください。ユーザー名とパスワードは適当に変更してください。
import java.sql.*; public class DBDemo { public static void main(String[] args) throws SQLException, ClassNotFoundException { // Load the JDBC driver Class.forName("org.mariadb.jdbc.Driver"); System.out.println("Driver loaded"); // Try to connect Connection connection = DriverManager.getConnection ("jdbc:mysql://localhost/test", "foo", "bar"); System.out.println("It works!"); connection.close(); } }
(MariaDB ではなく) Oracle MySQL を使用する場合、上記のコードの中のクラス名は com.mysql.jdbc.Driver
にする必要があります。
プログラムの実行
以下のコマンドでプログラムをコンパイル・実行します:
$ javac DBDemo.java $ java DBDemo
正しく設定されていれば、以下のように表示されます:
Driver loaded It works!