JDBC通过配置文件连接数据库

学习配置文件的使用

在我们刚开始学习使用JDBC连接数据库 (以MySQL为例) 时,我们通常都会行云流水的打一套组合拳。如下:其中获取连接对象的url,user,password就省略不写了;

//1、加载驱动
Class.forName("com.mysql.jdbc.Driver")
//2、获取连接对象
Connection conn = DriverManager.getConnection(url, user, password);
//3、获取执行对象
Statement stat = conn.createStatement();
//4.进行查询操作
ResultSet rs = stat.executeQuery("select *from t_course");

然后我们就可以发现,每次进行数据库操作时,都要这样写会很繁琐,代码冗余太多,就会想着进行改进,由此出现了自定义工具类,把重复执行的代码尽量抽取出来;

public class DBUtils {
    //加载驱动放入静态代码块中...只需要加载一次
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取连接对象;
    public static Connection getConnection(){
        Connection conn = null;
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sql_test", "root", "1230");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}
//1、加载驱动    2、获取连接对象
conn = DBUtils.getConnection();
//3、获取执行对象
stat = conn.createStatement();
//4.进行查询操作
rs = stat.executeQuery("select *from t_course");

结果好像并没有优化多少. . . 跳过跳过

在自定义类工具中,我们还可以针对URL,UserName,PassWord等参数进行优化,也就是使用**配置文件**;

首先我们要了解到,什么是配置文件?

简单的来说吧,在Java中配置文件是软件开发过程中非常常用的一类文件,目的是将软件运行需要使用的参数、用户偏好等配置信息灵活的以可编辑文件的形式存储下来。就好比我们加载数据库驱动时需要的Class Name,也好比获取连接对象中传入的URL,UserName,Password参数;可以将其先写入可编辑文件中,之后通过获取传入,这样的话以后更换数据库、表文件、或者更新用户信息时就不需要去更改程序,能够减少错误的,提高规范性;

这也就是为什么要设置配置文件了?

官方的说它能使程序更灵活,以后变更数据库信息,只需更改配置文件

如何设置?

1.命名规范:dbconfig.properties一般以properties结尾

2.实例化Properties对象并load配置文件

3.根据key获取出对应的value值

理论结束了我们就进行实战:

先来观察工程结构:config.properties就是创建的配置文件放在工程下即可,放具体的包中也可以;

接下来观察配置文件中的内容:[注意] 在结尾处不允许有空格,不然后续执行会出现Bug;在这里的话可以看成是键值对的形式,等号左边为Key,右边为Value;所以我们可以通过Key来得到想要的值;

driverName=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/sys_stu

username=root

password=1230

接下来就是代码实现,这里是放在工具类中,和上面方式结合。

public class DBUtils {
	
	//将需要用到的变量抽取出来
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	
	static{
		try {
			//实例化配置属性的对象
			Properties properties = new Properties();
			//将配置文件加载进去
			properties.load(new FileInputStream("config.properties"));
			//通过Key来获取Value
			driver = properties.getProperty("driverName");
			url = properties.getProperty("url");
			username = properties.getProperty("username");
			password = properties.getProperty("password");
			Class.forName(driver);
		} catch (ClassNotFoundException | IOException e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection(){
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(url,username,password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值