”Microsoft SQL Server JDBC Driver 2.0”を使用してSQL Server 2008 Express に接続する。
(1)ドライバのダウンロード
①マイクロソフトのダウンロードセンターから”Microsoft SQL Server JDBC Driver 2.0”をダウンロードする
②ダウンロードしたexeをダブルクリックで実行してから、UnZipを選択してファイルを展開する。
③展開されたファイル(Microsoft SQL Server JDBC Driver 2.0)を適当なディレクトリに移動させる。
(今回は”C:\Program Files”に移動)
(2)Eclipseのプロジェクトのライブラリにドライバを追加
①以下の手順で、Eclipseのプロジェクトライブラリに”sqljdbc4.jar”を追加する。
②”Package Explorer”でプロジェクト名を右クリックして表示されるメニューから
”Build Path” > ”Add External Archives”
を選択する。
③”sqljdbc4.jar”をライブラリに追加する。
”C:\Program Files\Microsoft SQL Server JDBC Driver 2.0\sqljdbc_2.0\jpn\sqljdbc4.jar”
④下図の通りに”sqljdbc4.jar”がライブラリに追加される。
(3)”Mcrosoft SQL Server Management Studio”からSQLServerの設定を変更。
①”Mcrosoft SQL Server Management Studio”を開き、サーバに接続する。
②ユーザとパスワードを設定する。
”Security” > ”Logins”
を選択してユーザ情報の変更を行う。
③サーバ名を右クリックして表示されるメニューから”Properties”を選択し、表示されるフォームで以下の通り設定。
(4)”Sql Server Configuration Manager”からSQLServerの設定を変更。
①windowsのスタートメニューの全てのプログラムから以下の通り選択する。
”Microsoft SQL Server 2008” > ”Configuration Tools” > ”Sql Server Configuration Manager”
②”Sql Server Configuration Manager”でTCP/IPを有効にする。
③”TCP/IP”を右クリックして表示されるメニューから”プロパティ”を選択する。
④TCPのポート番号を以下の通り設定する。
(5)telnetコマンドが指定されたポートで通れば設定は完了。
>telnet サーバのIPアドレス 1433
サンプルプログラム
サーバにTestDBというデータベースを作って、テーブルStudentsTblを作成。
StudentsTblにはStudentNoとStudentNameのカラムが存在。

import java.sql.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class MainFrm extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
//接続情報
private String DBMSName = "sqlserver";
private String ServerName = "localhost";
private String PortNo = "1433";
private String DBName = "TestDB";
private String UserID = "User";
private String MyPassword = "password123";
//データベースのデータを表示させるJTableと、JTableを入れるJScrollPane
private ExJTable tbl = new ExJTable();
private JScrollPane ScrlPane = new JScrollPane(tbl);
public static void main(String[] args) {
MainFrm MyFrm = new MainFrm();
MyFrm.setVisible(true);
}
public MainFrm() {
// TODO Auto-generated constructor stub
//フレームクローズでプロセスも閉じる。
setDefaultCloseOperation(EXIT_ON_CLOSE);
//フレームのタイトル
setTitle("メインフレーム");
JOptionPane.showConfirmDialog(null, "接続開始", "Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
try {
//ドライバ
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//接続
Connection Con = DriverManager.getConnection(ConnectURL());
JOptionPane.showConfirmDialog(null, "接続成功", "Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
//ステートメント
java.sql.Statement St = Con.createStatement();
//SQL文
String SQLStr;
SQLStr = "";
SQLStr += "Select";
SQLStr += " *";
SQLStr += " From";
SQLStr += " StudentsTbl";
//SQLを実行してレコードセットを取得
ResultSet rset = St.executeQuery(SQLStr);
//列を追加
for (int col = 1; col <= rset.getMetaData().getColumnCount(); col++) {
tbl.addCol(rset.getMetaData().getColumnName(col));
}
//行を追加
String[] rowData = new String[rset.getMetaData().getColumnCount()];
while(rset.next()){
for (int col = 1; col <= rset.getMetaData().getColumnCount(); col++) {
rowData[col - 1] = rset.getString(col);
}
tbl.addRow(rowData);
}
rset.close();
Con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showConfirmDialog(null, "接続失敗:" + e.getMessage(), "Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
}
add(ScrlPane);
//フレームを中身の大きさに自動調整
pack();
}
//接続URL作成
private String ConnectURL(){
return("jdbc:" + DBMSName + "://" +
ServerName + ":" + PortNo + ";" +
"databaseName=" + DBName + ";" +
"user=" + UserID + ";" +
"password=" + MyPassword + ";");
}
private class ExJTable extends JTable{
/**
*
*/
private static final long serialVersionUID = 1L;
private DefaultTableModel dtm = new DefaultTableModel();
public ExJTable() {
// TODO Auto-generated constructor stub
//テーブルモデルをセット
setModel(dtm);
}
//行の追加
public void addRow(Object[] rowData){
dtm.addRow(rowData);
}
//列の追加
public void addCol(Object columnName){
dtm.addColumn(columnName);
}
}
}
最終更新:2011年06月14日 00:46