JDBC數據庫連接技術

  1.  什麼是JDBC?  

JDBC全稱Java Data Base Connectivity,意義爲Java數據庫連接,由一些接口和類構成的API,使用使用它可很方便很容易的操作關係型數據庫。它J2SE的一部分,由java.sql,javax.sql包組成。這裏補充一下:

  • java.sql.* : 屬於jdbc2.0版本

  • javax.sql.* : 屬於jdbc3.0版本,是2.0拓展,加了一些屬性,例如:數據庫連接池,分佈式事務處理。

 2.  什麼是JDBC驅動

驅動程序是知道如何與實際數據庫服務進行會話的軟件部件。JDBCJDBC接口的具體實現,不同的數據庫廠商有不同的實現,通常都會打包成jar包。JDBC驅動類型總共有四類,通常用純java的驅動。

 3.  如何連接數據庫

A 載入JDBC驅動

針對不同的數據庫,可以去下載不同的驅動。載入驅動的方式可以通過Class.forName或者Properties工具

         a)例如oracle數據庫:

  1. Class.forName("oracle.jdbc.driver.OracleDriver"); 

爲了方便,可以定義一個常量:

  1. private final String ORACLEDRIVER = "oracle.jdbc.driver.OracleDriver"

其實ORACLEDRIVER的值是個路徑。

         b)Properties工具:

這個實現有點複雜,首先,得建立一個名叫DB.properties文件,在裏定義:driverClassName=oracle.jdbc.driver.OracleDriver;

然後在構建一個類,進行讀取:具體代碼如下:


  1. Properties prop =new Properties(); 
  2.  
  3. prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("DB.properties")); 
  4.  
  5. ORACLEDRIVER = prop.getProperty(" driverClassName "); 

這樣就完成了驅動的載入。

     B :  定義並連接URL

有以後二個類使用到:ConnectionDriverManager。關於這個二類具體的用法可見參考文檔。

URL通常包括:jdbc:協議:@主機名:端口號:數據庫

例如oracle URL: jdbc:oracle:thin:@localhost:1521:orcl;

          a)接着定義常量:用戶名與密碼


  1. private final String USERNAME = "xxxx"
  2.  
  3. private final String PASSWORD= "xxxx"
  4.  
  5. Connection conn=DriverManager.getConnection(URL,USERNAME,PASSWORD ); 

         b)DB.properties裏面定義:

USERNAME =XXXXX

PASSWORD=XXXXX

URL=jdbc:oracle:thin:@localhost:1521:orcl

然後調用getProperty("參數"),進行引用。

  1. Connection conn=DriverManager.getConnection(URL,USERNAME,PASSWORD ); 

這樣就定義並且連接好,但是別忘記try{}catch(){},當然throws異常也可以。

具體代碼如下:

版本一號:

  1. import java.sql.Connection; 
  2. import java.sql.DriverManager; 
  3. import java.sql.SQLException; 
  4. //用於連接數據庫 
  5. public class Jdbc { 
  6.    private  final  String ORACLEDRIVER ="oracle.jdbc.driver.OracleDriver";//驅動名。 
  7.    private  final  String URL="jdbc:oracle:thin:@localhost:1521:orcl";//url。 
  8.    private  final  String USERNAME="XXX";//數據庫名。 
  9.    private  final  String PASSWORD="XXXX";//密碼。 
  10.    private  Connection conn=null
  11.    public Jdbc()   
  12.    { 
  13.        //加載驅動 
  14.        try { 
  15.           Class.forName(ORACLEDRIVER); 
  16.           this.conn=DriverManager.getConnection(URL, USERNAME, PASSWORD); 
  17.     } catch (ClassNotFoundException e)  
  18.     { 
  19.         System.out.println("驅動加載異常"); 
  20.     }catch(SQLException e) 
  21.     { 
  22.         System.out.println("沒有連接到數據庫"); 
  23.     } 
  24.         
  25.    } 
  26.    //建立一個方法獲得連接 
  27.    public Connection getInstance() 
  28.    { 
  29.        return this.conn; 
  30.    } 
  31.    //如果this.conn!=null;則把它關閉。 
  32.    public void close() 
  33.    { 
  34.        if(this.conn!=null) 
  35.        { 
  36.            try { 
  37.             this.conn.close(); 
  38.         } catch (SQLException e) { 
  39.             // TODO Auto-generated catch block 
  40.             e.printStackTrace(); 
  41.         } 
  42.        } 
  43.    } 


    1. 版本二:爲區分,就用不同的名字。 
    2. DB.properties文件: 
    3. user=zhangzhi 
    4. password=feiyang 
    5. url=jdbc:oracle:thin:@localhost:1521:orcl 
    6. driverClassName =oracle.jdbc.driver.OracleDriver 
  1. import java.io.IOException; 
  2. import java.sql.Connection; 
  3. import java.sql.DriverManager; 
  4. import java.sql.SQLException; 
  5. import java.util.Properties; 
  6. public class DB { 
  7.     private static Connection conn = null
  8.     private static String url = null
  9.     private static String username = null
  10.     private static String password = null
  11.     private static String driver = null
  12.     private static Properties prop = null
  13.     static{ 
  14.         prop = new Properties(); 
  15.     try { 
  16.         prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("DB.properties")); 
  17.     } catch (IOException e) { 
  18.         // TODO Auto-generated catch block 
  19.         e.printStackTrace(); 
  20.     } 
  21.         driver = prop.getProperty("driverClassName"); 
  22.         url = prop.getProperty("url"); 
  23.         username = prop.getProperty("username"); 
  24.         password = prop.getProperty("password"); 
  25.     } 
  26.     public static Connection getconn() throws ClassNotFoundException, SQLException{ 
  27.         Class.forName(driver); 
  28.         return conn = DriverManager.getConnection(url,username,password); 
  29.             } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章