1、JdbcUtils的作用
连接数据库的四大参数是:启动类、url、用户名、以及密码。这些参数都与数据库关联,如果将来想要更新数据库,那么就要去修改这四大参数,那么为了不去修改代码,我们写一个jdbcUtils类,让它从配置文件中读取配置参数,然后创建连接对象。
2、JdbcUtils代码
public class JdbcUtils {
public static Connection getConnection() throws IOException, SQLException, ClassNotFoundException {
/*
* 1、加载配置文件(四大参数在配置文件中)
* 2、加载驱动类
* 3、调用DriverManager.getConnection()
* */
//加载配置文件
InputStream in=JdbcUtils.class.getClassLoader()
.getResourceAsStream("bdconfig.properties");
Properties props=new Properties();
props.load(in);
//加载驱动类
Class.forName(props.getProperty("driverClassName"));
//得到Connection
return DriverManager.getConnection(props.getProperty("url"),
props.getProperty("username"),
props.getProperty("password"));
}
}
代码优化:
加载配置文件与驱动类都需要执行一次,因此这部分代码可以放在静态代码块里。
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtils {
private static Properties props=null;
//只在JdbcUtils类被加载时执行一次
static {
//给props进行初始化,即加载bdconfig.properties文件到props对象中
//加载配置文件(四大参数在配置文件中)
try {
InputStream in=JdbcUtils.class.getClassLoader()
.getResourceAsStream("bdconfig.properties");
props=new Properties();
props.load(in);
}catch(IOException e) {
throw new RuntimeException(e);
}
try {//加载驱动类
Class.forName(props.getProperty("driverClassName"));
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws SQLException {
//得到Connection
return DriverManager.getConnection(props.getProperty("url"),
props.getProperty("username"),
props.getProperty("password"));
}
}