JDBC工具类

该工具类的作用仅供java注册驱动、获取连接和释放资源:

第一种方式:创建静态代码块

Java代码   收藏代码
  1. import java.sql.Connection;  
  2. import java.sql.DriverManager;  
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6.   
  7. public final class JdbcUtils {//拒绝继承  
  8.     private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";  
  9.     private static String user = "sa";  
  10.     private static String password = "123456";  
  11.   
  12.     //拒绝new一个实例  
  13.     private JdbcUtils() {};  
  14.   
  15.     static {//调用该类时既注册驱动  
  16.         try {  
  17.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  18.         } catch (ClassNotFoundException e) {  
  19.             throw new ExceptionInInitializerError(e);  
  20.         }  
  21.     }  
  22.       
  23.     //获取连接  
  24.     public static Connection getConnection() throws SQLException {  
  25.         return DriverManager.getConnection(url, user, password);  
  26.     }  
  27.   
  28.     //释放资源  
  29.     public static void free(ResultSet rs, Statement stmt, Connection conn) {  
  30.         if (rs != null) {  
  31.             try {  
  32.                 rs.close();  
  33.             } catch (SQLException e) {  
  34.                 e.printStackTrace();  
  35.             } finally {  
  36.                 if (stmt != null) {  
  37.                     try {  
  38.                         stmt.close();  
  39.                     } catch (SQLException e) {  
  40.                         e.printStackTrace();  
  41.                     } finally {  
  42.                         if (conn != null) {  
  43.                             try {  
  44.                                 conn.close();  
  45.                             } catch (SQLException e) {  
  46.                                 e.printStackTrace();  
  47.                             }  
  48.                         }  
  49.                     }  
  50.                 }  
  51.             }  
  52.         }  
  53.     }  
  54. }  

 

第二种方式:单例模式:初始化域

 

Java代码   收藏代码
  1. import java.sql.Connection;  
  2. import java.sql.DriverManager;  
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6.   
  7. public final class JdbcUtilsSingleton {//拒绝继承  
  8.     private  String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";  
  9.     private  String user = "sa";  
  10.     private  String password = "123456";  
  11.   
  12.     //拒绝new一个实例  
  13.     private JdbcUtilsSingleton() {};  
  14.   
  15.     static {//调用该类时既注册驱动  
  16.         try {  
  17.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  18.         } catch (ClassNotFoundException e) {  
  19.             throw new ExceptionInInitializerError(e);  
  20.         }  
  21.     }  
  22.       
  23.     //单例模式:初始化一个域  
  24.     private static JdbcUtilsSingleton instance = new JdbcUtilsSingleton();  
  25.     //获取实例  
  26.     public static JdbcUtilsSingleton getInstance() {  
  27.         return instance;  
  28.     }  
  29.       
  30.     //获取连接  
  31.     public  Connection getConnection() throws SQLException {  
  32.         return DriverManager.getConnection(url, user, password);  
  33.     }  
  34.   
  35.     //释放资源  
  36.     public  void free(ResultSet rs, Statement stmt, Connection conn) {  
  37.         if (rs != null) {  
  38.             try {  
  39.                 rs.close();  
  40.             } catch (SQLException e) {  
  41.                 e.printStackTrace();  
  42.             } finally {  
  43.                 if (stmt != null) {  
  44.                     try {  
  45.                         stmt.close();  
  46.                     } catch (SQLException e) {  
  47.                         e.printStackTrace();  
  48.                     } finally {  
  49.                         if (conn != null) {  
  50.                             try {  
  51.                                 conn.close();  
  52.                             } catch (SQLException e) {  
  53.                                 e.printStackTrace();  
  54.                             }  
  55.                         }  
  56.                     }  
  57.                 }  
  58.             }  
  59.         }  
  60.     }  
  61. }  

 

第三种方式:单例模式:延迟加载

 

Java代码   收藏代码
  1. package cn.itcast.jdbc.utils;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.SQLException;  
  7. import java.sql.Statement;  
  8.   
  9. public final class JdbcUtilsSingleton {//拒绝继承  
  10.     private  String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";  
  11.     private  String user = "sa";  
  12.     private  String password = "123456";  
  13.   
  14.     //拒绝new一个实例  
  15.     private JdbcUtilsSingleton() {};  
  16.   
  17.     static {//调用该类时既注册驱动  
  18.         try {  
  19.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  20.         } catch (ClassNotFoundException e) {  
  21.             throw new ExceptionInInitializerError(e);  
  22.         }  
  23.     }  
  24.       
  25.     //单例模式::延迟加载  
  26.     private static JdbcUtilsSingleton instance = null;  
  27.     //获取实例  
  28.     public static JdbcUtilsSingleton getInstance() {  
  29.         if(instance == null) {  
  30.             synchronized (JdbcUtilsSingleton.class) {  
  31.                 if(instance == null) {//双重检查,避免重复创建实例  
  32.                     instance = new JdbcUtilsSingleton();  
  33.                 }  
  34.             }  
  35.         }  
  36.         return instance;  
  37.     }  
  38.       
  39.     //获取连接  
  40.     public  Connection getConnection() throws SQLException {  
  41.         return DriverManager.getConnection(url, user, password);  
  42.     }  
  43.   
  44.     //释放资源  
  45.     public  void free(ResultSet rs, Statement stmt, Connection conn) {  
  46.         if (rs != null) {  
  47.             try {  
  48.                 rs.close();  
  49.             } catch (SQLException e) {  
  50.                 e.printStackTrace();  
  51.             } finally {  
  52.                 if (stmt != null) {  
  53.                     try {  
  54.                         stmt.close();  
  55.                     } catch (SQLException e) {  
  56.                         e.printStackTrace();  
  57.                     } finally {  
  58.                         if (conn != null) {  
  59.                             try {  
  60.                                 conn.close();  
  61.                             } catch (SQLException e) {  
  62.                                 e.printStackTrace();  
  63.                             }  
  64.                         }  
  65.                     }  
  66.                 }  
  67.             }  
  68.         }  
  69.     }  
  70. }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值