package com.lin.jdbc_01;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/*
* 封装工具类
* 对注册驱动,获取数据库连接对象的参数进行优化
* (存储到配置文件jdbc.properties)
* 释放资源封装功能,获取连接对象定义一个功能
*
*
* */
public class JDBCUtils { //加载该类的时候,同时读取配置文件,以及获取内容,注册驱动!
//定义几个静态变量
private static String url = null ;
private static String user = null;
private static String password = null ;
private static String driver = null ;
//构造方法私有化
private JDBCUtils() {
}
//构造一个静态代码块
static {
try {
//创建一个属性集合类对象:
Properties prop = new Properties() ;
//获取当前类字节码文件对象,同时它的类加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader() ;
//方式1:获取URL对象:资源地址对象
//URL URLPath = classLoader.getResource("jdbc.properties") ;
//获取路径:绝对路径
//String path = URLPath.getPath() ;
//System.out.println(path);///D:/JavaEE2005_workspace/Jbdc_02/bin/jdbc.properties
//需要将配置文件内容加到属性列表中
//prop.load(new FileReader(path));
//方式2:
InputStream inputStream = classLoader.getResourceAsStream("jdbc.properties") ;
//将配置文件加载到属性列表中
prop.load(inputStream);
//获取里面的value:getProperty(String key)---->value
url = prop.getProperty("url") ;
user = prop.getProperty("user") ;
password = prop.getProperty("password") ;
driver = prop.getProperty("driver") ;
//注册驱动
Class.forName(driver) ;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//封装一个功能:获取连接对象
public static Connection getConnection(){
try {
Connection conn = DriverManager.getConnection(url, user, password) ;
return conn ;
} catch (SQLException e) {
e.printStackTrace();
}
return null ;
}
//释放资源的方法:DQL
public static void close(ResultSet rs,Statement stmt,Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//DML,DDL
public static void close(Statement stmt,Connection conn) {
close(null, stmt, conn);
}
//
public static void main(String[] args) {
Connection conn = JDBCUtils.getConnection() ;
System.out.println(conn);//com.mysql.jdbc.JDBC4Connection@7a07c5b4
}
}
url=jdbc:mysql://localhost:3306/mydb_02
user=root
password=123456
driver=com.mysql.jdbc.Driver