| 為了要連線MySQL資料庫,您必須要有MySQL JDBC驅動程式,請將下載的mysql-connector-java-*.jar加入至CLASSPATH中,這邊先以Java Class來示範如何連線MySQL,Java類別中與資料庫操作相關的類別都位於java.sql套件中。 要連線MySQL,必須經由幾個動作:
透過java.lang.Class類別的forName()來載入並向DriverManager註冊JDBC驅動程式(驅動程式會自動透過DriverManager.registerDriver()方法註冊), MySQL的驅動程式類別是com.mysql.jdbc.Driver,您如下載入與註冊JDBC驅動程式:
try {
Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) { System.out.println("找不到驅動程式類別"); } 如果找不到com.mysql.jdbc.Driver類別,就會丟出 ClassNotFoundException,這時請確定您的CLASSPATH中是否包括了mysql-connector-java-*.jar的位置。
JDBC URL定義了連接資料庫時的協定、子協定、資料來源職別:
協定:子協定:資料來源識別
協定在JDBC中總是jdbc開始;子協定是橋接的驅動程式或是資料庫管理系統名稱,使用MySQL的話是 mysql;資料來源識別標出找出資料庫來源的位址;MySQL的JDBC URL撰寫方式如下:
jdbc:mysql://主機名稱:連接埠/資料庫名稱?參數1=值1&參數2=值2 主機名稱可以是本機localhost或是其它連線主機,連接埠為3306,假如我們要連線GUESTBOOK 資料庫,並指明使用者名稱與密碼,可以如下指定:
jdbc:mysql://localhost:3306/GUESTBOOK?user=caterpillar&password=123456
如果要使用中文存取的話,還必須給定參數userUnicode及characterEncoding,表明是否使用Unicode,並指定字元編碼方式,例如:
jdbc:mysql://localhost:3306/GUESTBOOK?user=caterpillar&password=123456 &useUnicode=true&characterEncoding=Big5
中文的編碼方式除了Big5之外,還可以使用UTF8,這可以避免Big5中文字「許」、「功」、「蓋」等存入 MySQL所發生的問題。
要連線資料庫,我們可以從DriverManager要求並取得Connection物件,它代表資料庫連線物件,您可以直接給它JDBC URL作為參數並取回Connection物件:
try {
String url = "jdbc:mysql://localhost:3306/GUESTBOOK?" + "user=caterpillar&password=123456"; Connection conn = DriverManager.getConnection(url); if(!conn.isClosed()) System.out.println("資料庫連線成功"); conn.close(); } catch(SQLException e) { .... } 取得Connection物件之後,您可以測試與資料庫的連線是否關閉,即使用isClosed(),在操作完資料庫之後,必須使用close()來關閉與資料庫的連線。
getConnection()方法也提供給定使用者名稱與密碼的方式來給定參數,例如:
String url = "jdbc:mysql://localhost:3306/GUESTBOOK";
String user = "caterpillar"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); 下面這個程式是用來測試與資料庫的連線是否成功的一個完整範例:
package onlyfun.caterpillar; |