-
鏈接准備
- MySQL數據庫驅動(連接器)。mysql-connector-java-x.x.xx.jar會在MySQL安裝時提供,若Mysql是默認安裝路徑,則連接器在:C:\Program Files (x86)\MySQL\Connector.J 5.1文件夾里,然后在項目中建立一個lib文件夾,拷貝連接器放進去:
2.將數據庫驅動導入至項目的工作空間中,使得其內部包含的包和類都加入到編譯環境中。(導入方式,選中上面一步的連接器,右鍵Buid path)
下面建立一個鏈接操作類來描述鏈接和操作方法:
- 建立一個類Test
1 public class Test { 2 3 public static void main(String[] args) { 4 5 } 6 }
- 第一步:在代碼中初始化數據庫驅動:Class.forName("com.mysql.jdbc.Driver").newInstance();,並添加異常處理塊。
1 //第一步,在代碼中初始化數據庫驅動: 2 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化數據庫驅動
- 第二步:使用DriverManager鏈接數據庫:
1 //第二步,使用DriverManager鏈接數據庫: 2 Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone", "root", "199751hwl");
- 第三步:獲得一個會話:
1 //3.獲得一個會話: 2 statement = con.createStatement();
- 第四步:statement.execute執行SQL語句並返回結果:
- 查操作
1 if (statement.execute("SELECT * from person")) {//查 2 4 rs = statement.getResultSet(); 5 while( rs.next() ) { // 依次獲得查詢結果,每次執行nest,換一行 6 String name = rs.getString("persName");//獲取字段 7 String sex = rs.getString("persSex"); 8 System.out.println(name+"\t"+sex); 9 } 11 } 12 else { 13 System.out.println("沒有數據!"); 14 } 15
-
- 增操作
1 if (statement.execute("INSERT into person VALUE(7,'小發發','男','學習')")) { 2 System.out.println("異常!");//增操作這里沒有返回 3 } 4 else { 5 System.out.println("增加成功!"); 6 }
- 第五步,關閉結果獲取,關閉會話和鏈接
1 finally { 2 try { 3 //第五步,關閉結果獲取,關閉會話和鏈接 4 statement.close(); 5 con.close(); 6 rs.close(); 7 } catch (SQLException e1) { 8 e1.printStackTrace(); 9 } 10 }
- 一個完整的小栗子:
1 import java.sql.*; 2 3 public class TestOne { 4 5 public static void main(String[] args) { 6 7 ResultSet rs = null; 8 Statement statement = null; 9 Connection con = null; 10 11 try { 12 13 //第一步,在代碼中初始化數據庫驅動: 14 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化數據庫驅動 15 //第二步,使用DriverManager鏈接數據庫:指定鏈接數據庫的信息 16 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone?useUnicode=true&characterEncoding=UTF-8","root","199751hwl"); 17 //第三步,獲得一個會話: 18 statement = con.createStatement(); 19 //第四步,執行SQL並查除結果集合 20 if (statement.execute("SELECT * from person")) {//查 21 rs = statement.getResultSet(); 22 while( rs.next() ) { // 依次獲得查詢結果,每次執行nest,換一行 23 String name = rs.getString("persName");//獲取字段 24 String sex = rs.getString("persSex"); 25 System.out.println(name+"\t"+sex); 26 } 27 } 28 else { 29 System.out.println("增加成功!"); 30 } 31 32 } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) { 33 e.printStackTrace(); 34 }finally { 35 try { 36 //第五步,關閉結果獲取,關閉會話和鏈接 37 statement.close(); 38 con.close(); 39 rs.close(); 40 } catch (SQLException e1) { 41 e1.printStackTrace(); 42 } 43 } 44 } 45 }