05jdbc代码重构

前面注册驱动和创建连接的代码都是重复的,可复用性不高,如果需要更换数据库或者用户名或者密码的话要改动很多内容,可维护性不高,为了方便复用,可以将经常变换的内容写入到配置文件

创建一个db.properties文件,将数据库驱动和用户名密码等内容写入到该文件

classDriver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/study1?useSSL=false&serverTimezone=UTC
username=root
password=root

之前说过properties文件每行存放 键=值,不用分号结尾 

再创建一个工具类DBUtil,用来注册驱动和获取连接


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;

public class DBUtil {
	
	private static String driverClass;
	private static String url;
	private static String username;
	private static String password;
	
	static {
		ResourceBundle rb=ResourceBundle.getBundle("util/db");
     //   ResourceBundle rb=ResourceBundle.getBundle("util.db");//配置文件在src目录下util包下
		driverClass=rb.getString("driverClass");
		url=rb.getString("url");
		
		username=rb.getString("username");
		password= rb.getString("password");
		
		try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url,username,password);
	}
}

其中ResourceBundle抽象类可以读取properties配置文件

ResourceBundle类用于国际化(多语言)的库。它能够根据为系统配置的默认区域设置返回消息。适用于开发世界各地的项目

static final ResourceBundle getBundle(String baseName)读取的文件是在classpath路径下,即src或者src目录下,如果properties文件不再src目录下,而在某个包的目录下,需要以包名/文件名的方式引入,注意文件名不要加后缀

String getString(String key)读取某个键对应的值,以字符串形式返回

 

经过改造后的jdbc代码变成这样子了

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import util.DBUtil;
 
public class JdbcTest01new {
	public static void main(String[]args) {
       
		
		try (
				//获取连接Connection
				Connection conn=DBUtil.getConnection();
		        ///得到执行sequel语句的对象Statement
			    Statement stmt=conn.createStatement();
		        //执行sql语句,并返回结果
			    ResultSet rs=stmt.executeQuery("select * from employee")
		        //处理结果
								){
			  while(rs.next()) {
			    	System.out.println(rs.getObject("employeenumber"));
			    	System.out.println(rs.getObject("employeename"));
			    	System.out.println(rs.getObject("departmentnumber"));
			    	System.out.println(rs.getObject("salary"));
			    	System.out.println(rs.getObject("hiredate"));
			    	System.out.println("-================");
			    }
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
            
	}

所以,以后修改数据库或者用户名/密码时,直接修改配置文件就好了,配置文件中的driverClass和url适用于mysql8.0版本驱动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值