SQLの窓 イラストAC フリー素材

2013年10月31日

Java で MySQL 5.6 に接続。今時は、ベンダー(MySQL/Oracle)のドライバーが優秀

要するに、MySQL の ODBC ドライバを使って、jdbc:odbc ドライバを使用すると、プロジェクトを MS932(SHIFT_JIS) で作成して、ドライバのオプションを sjis にしないとうまくいかない。

しかし、jdbc:mysql だと、何もしなくてもどちらからも接続できました。逆にオプション設定しても現実の状態を見てそちらを優先させているような感じです。

ドライバは、Download Connector/J をダウンロードしてインストールしますが、MySQL をインストールした PC ならば既にインストールされていると思います。場所は、『C:\Program Files\MySQL\MySQL Connector J』 の mysql-connector-java-5.1.26-bin.jar を Eclipse の 実行構成の『クラスパス』タブで、ユーザーエントリーに『外部 Jar 追加』で参照させました。

ドキュメント(英文)
Connection con;
Statement stmt;
ResultSet rset;

//	String connectionString =
//		"jdbc:odbc:Provider=MSDASQL" +
//		";Driver={MySQL ODBC 5.2w Driver}" +
//		";SERVER=localhost" + 
//		";DATABASE=lightbox" +
//		";UID=root" +
//		";PWD=trustno1" +
//		";Charset=sjis" +
//		";";	

String connectionString = "jdbc:mysql://localhost/lightbox?" +
"user=root&password=パスワード";

try {
	con = DriverManager.getConnection(connectionString);
	stmt = con.createStatement();

	rset = stmt.executeQuery ( "select * from `社員マスタ`" );

	ResultSetMetaData rm = rset.getMetaData();
	int nCols = rm.getColumnCount();
	String[] data = new String[nCols];
	int i;

	while( rset.next() ) {
		for( i = 0; i < nCols; i++ ) {
			data[i] = rset.getString( i+1 );

			if ( i != 0 ) {
				System.out.print( "," );
			}
			System.out.print( data[i] );
		}
		System.out.println(  );
	}

	stmt.close();
	con.close();

}
catch (Exception e) {
	System.out.println( e.getMessage() );
}		

久しぶりに Java から DB にアクセスして、Class.forName が必要無くなった事を認識しました・・・・


【Javaの最新記事】
posted by at 2013-10-31 23:06 | Java | このブログの読者になる | 更新情報をチェックする