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.             } 

 

你可能感兴趣的:(java,数据库,jdbc)