アットウィキロゴ

SQL Serverに接続

”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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。