数据库的配置文件
driver = com.mysql.jdbc.Driver
dburl = jdbc\:mysql\://localhost\:3306/jsp_db
user = root
password = 1233211234567
通过,静态代码块从属性文件读取配置信息,静态代码块可以为类属性赋值。
JVM在加载类时,会执行类中的静态代码块。而,正因为在加载类时会执行静态代码块,因此,静态代码块只会实现一次。
Properties 类 方法 用于处理属性文件中的键值对。
package PropertyConfigPack;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class ConnectionFactory {
public static String driver;
public static String dburl;
public static String user;
public static String password;
static{
Properties properties = new Properties();
try{
// 用当前类的 类加载器 的 getResouceAsStream 读取文件中的内容
InputStream inputStream = ConnectionFactory.
class.getClassLoader().getResourceAsStream("bdconfig.properties");
// load 方法读取 属性列表,机键值对列表
properties.load(inputStream);
}
catch(Exception e){
System.out.println("======= 配置文件读取错误 =======");
}
driver = properties.getProperty("driver");
dburl = properties.getProperty("dburl");
user = properties.getProperty("user");
password = properties.getProperty("password");
}
private static final ConnectionFactory factory = new ConnectionFactory();
private ConnectionFactory(){
}
public static ConnectionFactory getInstance(){
return factory;
}
// 创建数据库连接的方法
private Connection connection;
public Connection makeConnection(){
try{
Class.forName(driver);
connection = DriverManager.getConnection(dburl,user,password);
}catch(Exception e){
e.printStackTrace();
}
return connection;
}
}
实现 JDBC 通过 ConnectionFactory 获取 Connection 对象的方法
package JDBCTestPack;
import java.sql.Connection;
import PropertyConfigPack.ConnectionFactory;
public class JDBCTestCLs {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ConnectionFactory cf = ConnectionFactory.getInstance();
Connection connection = cf.makeConnection();
System.out.println(connection.getAutoCommit());
}
}