JDBC-mysql数据库工具类的实现
工具类
简单的jdbc连接数据库的操作就不介绍了,主要想说明的是这个比较方便通用的jdbc的工具类。
另外:再用一张图表明什么是JDBC
目的:简化书写
分析:
Ø 注册驱动也抽取
Ø 抽取一个方法获取连接对象
需求:不想传递参数(麻烦),还得保证工具类的通用性
解决:配置文件
Ø 抽取一个方法释放资源
代码部分:
package JDBCutil;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
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;
public class Jdbcutils {
private static String url;
private static String user;
private static String password;
private static String driver;
/*
* 文件的读取,只需要读取一次即可拿到这些值。使用静态代码块
*/
static {
//读取资源文件,获取值
//1.Properties集合类
Properties pro = new Properties();
try {
//获取src路径下的文件的方式-->Classloader类加载器
// pro.load(new FileReader("src.JDBCutil/jdbc.properties"));
ClassLoader classLoader = Jdbcutils.class.getClassLoader();
//以src为相对的路径
URL res = classLoader.getResource("JDBCutil/jdbc.properties");
String path = res.getPath();
//2.加载文件
pro.load(new FileReader(path));
//3.获取属性,赋值
url = pro.getProperty(url);
user = pro.getProperty(user);
password = pro.getProperty(password);
driver = pro.getProperty(driver);
//4.注册驱动
Class.forName(driver);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/*
* 获取连接
* @return 连接对象
*/
public Connection getConnection() throws Exception{
return DriverManager.getConnection(url, user, password);
}
/*
* 释放资源
*/
public static void close(Statement stmt, Connection conn) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
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();
}
}
}
}
}
}
文件部分
url = jdbc:mysql://localhost:3306/test
user = root
password = oysl1020
driver = com.mysql.cj.jdbc.Driver
只展示了工具类里面的实现方法,运用到main函数,通过调用方法就能实现这个类了,总之这个类的使用还是挺方便的,增加了代码的可读性和通用性。