JDBCUtils工具类的实现
在注册驱动的时候:Class.forName(Driver)
报错:java.lang.ClassNotFoundException: org.sqlite.JDBC
是因为该类未被正确加载,可能是因为以下原因之一:
1.缺少 SQLite JDBC 驱动程序包。您需要将 SQLite JDBC 驱动程序包添加到类路径中。
2.从ClassLoader
从属性文件中读取值,然后尝试使用这些值加载驱动程序。因此,请确保属性文件中的 DRIVER
属性正确设置为 org.sqlite.JDBC
,并且驱动程序包位于正确的位置,供ClassLoader
加载。
以为是properties加载资源的问题,打印出来感觉没什么毛病,结果是多了一对双引号
因此在书写properties配置文件的时候,务必保持key-value的形式,需要加符号的地方要注意
下面是简单版本,还有一些没完善
package java6265.dao;
import org.junit.Test;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBUtil6265 {
private static String Driver;
private static String Url;
private static String USER;
private static String PW;
/**
* 文件的读取,只需要读取一次就可以拿到这些值,使用静态代码块
*/
static {
//1.创建Properties集合类
Properties properties = new Properties();
try {
//2.加载文件
ClassLoader classLoader = DBUtil6265.class.getClassLoader();
URL url = classLoader.getResource("config/database6265.properties");
String path = url.getPath();
properties.load(new FileReader(path));
//3.获取数据赋值
Driver = properties.getProperty("DRIVER");
Url = properties.getProperty("URL");
USER = properties.getProperty("USER");
PW = properties.getProperty("PW");
Class.forName(Driver);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接
* @return 连接对象
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(Url, USER, PW);
}
public static void close(Connection connection,Statement statement){
if(connection != null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(statement != null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}