JDBCUtil

  1 package com.itheima.uitl;
  2 
  3 import java.io.FileInputStream;
  4 import java.io.InputStream;
  5 import java.sql.Connection;
  6 import java.sql.DriverManager;
  7 import java.sql.ResultSet;
  8 import java.sql.SQLException;
  9 import java.sql.Statement;
 10 import java.util.Properties;
 11 
 12 public class JDBCUtil {
 13     
 14     static String driverClass = null;
 15     static String url = null;
 16     static String name = null;
 17     static String password= null;
 18     
 19     static{
 20         try {
 21             //1. 创建一个属性配置对象
 22             Properties properties = new Properties();
 23             InputStream is = new FileInputStream("jdbc.properties");
 24             
 25             //使用类加载器,去读取src底下的资源文件。 后面在servlet
 26 //            InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
 27             //导入输入流。
 28             properties.load(is);
 29             
 30             //读取属性
 31             driverClass = properties.getProperty("driverClass");
 32             url = properties.getProperty("url");
 33             name = properties.getProperty("name");
 34             password = properties.getProperty("password");
 35             
 36         } catch (Exception e) {
 37             e.printStackTrace();
 38         }
 39     }
 40     
 41     /**
 42      * 获取连接对象
 43      * @return
 44      */
 45     public static Connection getConn(){
 46         Connection conn = null;
 47         try {
 48             Class.forName(driverClass);
 49             //静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());
 50             //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
 51             //DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
 52             //2. 建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
 53             conn = DriverManager.getConnection(url, name, password);
 54         } catch (Exception e) {
 55             e.printStackTrace();
 56         }
 57         return conn;
 58     }
 59     
 60     /**
 61      * 释放资源
 62      * @param conn
 63      * @param st
 64      * @param rs
 65      */
 66     public static void release(Connection conn , Statement st , ResultSet rs){
 67         closeRs(rs);
 68         closeSt(st);
 69         closeConn(conn);
 70     }
 71     public static void release(Connection conn , Statement st){
 72         closeSt(st);
 73         closeConn(conn);
 74     }
 75 
 76     
 77     private static void closeRs(ResultSet rs){
 78         try {
 79             if(rs != null){
 80                 rs.close();
 81             }
 82         } catch (SQLException e) {
 83             e.printStackTrace();
 84         }finally{
 85             rs = null;
 86         }
 87     }
 88     
 89     private static void closeSt(Statement st){
 90         try {
 91             if(st != null){
 92                 st.close();
 93             }
 94         } catch (SQLException e) {
 95             e.printStackTrace();
 96         }finally{
 97             st = null;
 98         }
 99     }
100     
101     private static void closeConn(Connection conn){
102         try {
103             if(conn != null){
104                 conn.close();
105             }
106         } catch (SQLException e) {
107             e.printStackTrace();
108         }finally{
109             conn = null;
110         }
111     }
112 }
View Code
原文地址:https://www.cnblogs.com/TomJay/p/9595692.html