要求:
java连接数据库的工具集
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
/*
* JDBCUtiles工具,专门用来连接数据库的工具,以此来提高代码的复用性。
* 包含:驱动加载,获得连接,资源释放等功能
* */
public class JDBCUtils {
//属性文件变量。
//加载驱动需要利用反射机制获取的class类名。
private static String driverClassName = null;
//连接数据库的url
private static String url = null;
//数据库用来登录的用户名
private static String user = null;
//数据库用来登录的密码
private static String password = null;
//获得连接后的Connection对象
Connection con = null;
//静态代码块,用来加载属性文件中的内容
static{
//获取属性对象
Properties properties = new Properties();
try {
//指定属性文件,把文件加载进属性对象
properties.load(new FileInputStream("idea_test\\src\\db.properties"));
//获取单个属性
driverClassName = properties.getProperty("driverClassName");
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
//注册并加载驱动
private void loadDriver(){
try {
// Class.forName("com.mysql.cj.jdbc.Driver");
//以反射的方式加载Driver驱动,因为加载驱动的同时会创建Driver对象,而
//driver类中有一段静态代码块,能够在加载driver驱动的同时完成驱动注册,
//这样我们就没必要再调用DriverManager.registerDriver(new Driver())
// 去再次注册驱动了。
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//此方法用来获取连接,返回Connection对象。
public Connection getConnection(){
//加载驱动
loadDriver();
try {
//获得连接对象
con = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
e.printStackTrace();
}
//返回连接对象
return con;
}
//释放资源(插入,增删改) 采用方法重载的方式,对不同情况下的资源进行释放。
public void relResource(Connection con, Statement statement){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
con=null;
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement=null;
}
}
public void relResource(Connection con, PreparedStatement statement){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
con=null;
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement=null;
}
}
//释放资源(查询语句)
public void relResource(Connection con, Statement statement, ResultSet resultSet){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
con=null;
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement=null;
}
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement = null;
}
}
public void relResource(Connection con, PreparedStatement statement, ResultSet resultSet){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
con=null;
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement=null;
}
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement = null;
}
}
}