JDBC 实现 配置文件和数据库操作的分离

数据库的配置文件

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());
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值