JDBC初级优化案例2
1.通过配置文件进行优化
配置文件如下两种:
1.properties
properties配置文件易于理解配置了哪些信息,适合于简单的属性配置
properties配置文件,存储键值对,键值对之间没有关系
2.xml
xml配置文件结构清晰,但是内容比较繁琐
现在讲解properties配置文件
如下格式,创建一个properties文件
2.写一个JDBCUtil工具类
细节:如果是java项目,我们得从src路径下读取文件
但是如果是javaWeb项目,得从web路径下读取文件
那么如何统一呢???
使用类路径去读取!!!
1.通过获取项目的类路径的根目录去读取配置文件
1.细节讲解
2.读取properties配置文件
3.获取连接,关闭连接等方法
总的工具类源码
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ResourceBundle;
/**
* 数据库连接驱动工具类:
*
*/
public class JDBUtil {
private static String driverClass;
private static String url;
private static String username;
private static String password;
//加载类的时候就直接 成员变量初始化了
static{
//todo ResourceBundle对象是用于加载properties文件数据的,不需要读取文件名
//todo 细节:properties文件最好放在src根目录下
ResourceBundle rb = ResourceBundle.getBundle("dbcpconfig");
driverClass = rb.getString("driverClass");
url = rb.getString("url");
username = rb.getString("username");
password = rb.getString("password");
try {
//TODO 从新建里面拿出连接
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
得到连接的方法
*/
public static Connection getConnection(){
Connection connection=null;
try {
connection = DriverManager.getConnection(url, username, password);
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
return connection;
}
/**
关闭资源的方法
*/
public static void close(Statement stmt,Connection conn){
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
stmt = null;
}
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
conn = null;
}
}
/**
关闭资源的方法
*/
public static void close(ResultSet rs,Statement stmt,Connection conn){
//关闭资源
if(rs!=null){
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
rs = null;
}
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
stmt = null;
}
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
conn = null;
}
}
public static void main(String[] args){
System.out.println(
JDBUtil.getConnection());
}
}