我這次使用MySQL來建立我的DB,在設定好DB的table以及其內容後,接下來就是要讓自己的程式與其相連接嚕~.在JDBC連結DB的時候有幾個動作要做:
註冊驅動程式--->建立連線--->產生Statement--->利用Statement執行sql要求--->得到結果.
Step1. 首先就是註冊MySQL的Driver. 你必須先去MySQL的官網下載其驅動程式 http://dev.mysql.com/downloads/connector/j/5.0.html ,下載下來後解壓縮,並且把解壓縮後的資料夾內,一個名為 "mysql-connector-java-[version]-bin.jar" 的檔案複製到C:\Program Files\Java\jre[version]\lib\ext 內 (要注意一下自己的jre版本,java下可能會有不同版本的jre,要把mysql-connector-java-[version]-bin.jar複製到正確的jre內),接著再重新啟動eclipse,其會自動將MySQL的驅動載入.
Step2. 接著就是要在程式上動手腳了.首先要利用Class.forName()來對DriverManager註冊Driver,例如:
String JD = "com.mysql.jdbc.Driver";
Class.forName(JD);
其主要的作用是讓JVM查找指定的class,並且執行class內某段static程式碼,例如:
static {
DriverManager.registerDriver(Driver driver) ;
}
若是找不到指定的資料庫驅動程式類別,則會丟出java.lang.ClassNotFoundException !!
Step3. 產生Connection object. 利用DriverManager.getConnection()來決定你要連結的資料庫,以及要以什麼身分登入,例如:
try{
String DU = "jdbc:mysql://localhost/brick"; //使用jdbc協定,子協定為mysql,資料庫名稱為//localhost/brick
Connection connection = DriverManager.getConnection(DU,"root", "123");
} catch (ClassNotFoundException e){
System.out.println ("系統找不到connection class!");
}catch(SQLException sqlException){
sqlException.printStackTrace();
System.exit(1);
}
若是DriverManager無法連接到資料庫,getConnection()則會丟出java.sql.SQLException!!
Step4. 利用Statement執行SQL語法. 可以用connection.createStatement()來產生statement object,例如:
Statement statement = connection.createStatement();
產生出來後使用statement使用executeUpdate(),executeQuery()等方法來執行sql語法,並且它們會回傳ResultSet object,例如:
String sql = "select * from tbCusinfo";
ResultSet rs = atement.executeQuery(sql);
另外,executeUpdate()主要是用來執行CREATE TABLE、INSERT、DROP TABLE、ALTER TABLE等會改變資料庫內容的sql語法.
Step5. 利用ResultSetMetaData取得ResultSet object中關於欄位 (Field) 的資訊.例如:
ResultSetMetaData metaData = resultSet.getMetaData();
int noofcolumns = metaData.getColumnCount(); //取得欄位個數
上述主要幾個步驟就是JDBC連接DB時幾個主要的步驟,若是後續還有需要對DB取出的data進行使用的話,則可利用metaData.getXXX()的方式做處理.
reference
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/StatementResultSet.htm
http://dslab.ee.ncku.edu.tw/~lok/notes/java/jdbc/jdbc.htm
End~
沒有留言:
張貼留言