Eclipse 3.4を使ったデータベース操作(CodeZine「Eclipse 3.4 入門」第7回)補足
2009年4月の著作「Eclipse 3.4からはじめるIDE入門」に関してリクエストをいただきましたので、
・実行環境のアップデートに伴う動作の違い
・作成した表を問合せるJavaプログラムの例
について補足します。今回は、Windows 7上で下記のバージョンを用いるとします。
・Java 6
・Eclipse 3.6.2(eclipse-SDK-3.6.2-win32.zip、NLpackja-eclipse-SDK-3.6.2-blancofw20110909.zip)
・MySQL 5.1.61(mysql-5.1.61-win32.msi)
・connector-j 5.1.18(mysql-connector-java-5.1.18.zip)
まず、実行環境のアップデートに伴う動作の違いです。
「Eclipse 3.4を使ったデータベース操作」p.4のテーブル作成用のSQLを実行するとエラーになります。これは、本文に記述した「MySQLの場合、区切り文字は「/」のままでも「;」でも構いません」という仕様が変更されたためです。末尾の「/」を「;」に書き換えるか、メニューの[ウィンドウ(W)]-[設定(P)]で設定ウィンドウを開き、[DBViewer Plugin]-[SQLエディター]で「SQL区切り文字」を「/」に変更してください。
次に、この記事に従って作成した表を問合せるJavaプログラムの例です。下記をどうぞ。
「Eclipse 3.4を使ったデータベース操作」で作成したhellodbデータベースのempテーブルを問合せるSQLを実行します。管理者(root)やそのパスワード(root)を変更している場合は、該当部分を書き換えてください。
Eclipseで実行するには、パースペクティブを「Java」に戻してから、適当なJavaプロジェクトに、hellodbtestパッケージ、HelloDBTestクラスの順に作成し、下記をコピー&ペーストすると良いでしょう。
package hellodbtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class HelloDBTest{
public static void main(String[] args){
Connection connect = null;
Statement state = null;
ResultSet result = null;
int empno, deptno;
String ename, hiredate;
try{
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection
("jdbc:mysql://localhost:3306/hellodb","root","root");
state = connect.createStatement();
result = state.executeQuery("SELECT * FROM emp");
while(result.next()){
empno = Integer.parseInt(result.getString("empno"));
ename = result.getString("ename");
hiredate = result.getString("hiredate");
deptno = Integer.parseInt(result.getString("deptno"));
System.out.println(empno + " " + ename + " " + hiredate + " " + deptno);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
state.close();
connect.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}