Java开发基础-JDBC-基本使用步骤—04

代码改进背景介绍:V2版本

如果将数据库连接信息放在代码中不利于后期的维护与查找,为了解决这个问题,我们可以使用java提供的API工具类:

java.util.Properties来实现。

首先通过下面的简单实例了解如何使这个工具类:

项目结构如下图所示:

1.在resources目录下编写数据库连接属性文件db.properties:【注意:这里使用:与=效果一样】

jdbc.driverclass=oracle.jdbc.driver.OracleDriver
jdbc.url:jdbc:oracle:thin:@localhost:1521:orcl
jdbc.user=learn
jdbc.password=learn
2.编写Properties测试类TestProperties:
/**
 * 演示:Properties工具类读取属性文件
 * @author Cher_du
 *
 */
public class TestProperties {
	
	public static void main(String[] args) throws IOException {
		
		Properties prop =new Properties();
		//获取指向当前项目类路径中属性文件的输入流
	   InputStream inStream	= TestProperties.class.getClassLoader()
			   				  .getResourceAsStream("db.properties");
		
		//加载属性文件数据到内存中
		prop.load(inStream);
		//根据已知的key获取value
		String url = prop.getProperty("jdbc.url");
		System.out.println(url);
	}

}

3.运行程序我们可以看到成功获取到对应属性url信息

正式开工:生气

通过上面对Properties类的简单介绍,下面通过它来改进我们之前的DBUtil工具类:

/**
 * 该类用来管理连接
 * 数据库连接的信息,保存在属性文件中
 * @author Cher_du
 *
 */
public class DBUtil2 {
	
	private static String driverClass;
	private static String url;
	private static String user;
	private static String password;
	
	static{
		
		//加载属性文件数据
		Properties prop = new Properties();
		try {
			prop.load(DBUtil2.class.getClassLoader().getResourceAsStream("db.properties"));
			driverClass = prop.getProperty("jdbc.driverclass");
			url = prop.getProperty("jdbc.url");
			user = prop.getProperty("jdbc.user");
			password = prop.getProperty("jdbc.password");
			
			//1.加载驱动
			Class.forName(driverClass);
		}catch (ClassNotFoundException e) {
			e.printStackTrace();	
			throw new RuntimeException("加载驱动错误!",e);
		}catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException("读取属性文件错误!",e);
		} 
	}
	
	//2.创建连接
	/*如何定义一个创建连接的方法
	 * 
	 * 返回值类型:
	 *    是否有运算结果,如果有,
	 *    结果的类型即为返回值类型。
	 * 参数列表:
	 *    功能中,是否有不确定的数据参与运算
	 *    如果有,即为参数列表
	 */
	public static Connection getConnection() throws SQLException{
		
		Connection conn	= DriverManager.getConnection(url, user, password);
		return conn;
	}
	
	//3.
	public static void  close(Connection conn){
		if(conn !=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException("关闭连接错误!",e);
			}
		}
	}
	
	//测试
	public static void main(String[] args) throws SQLException {
		System.out.println(getConnection());
	}
	
	
}

运行程序可以看到成功获取到数据库连接!

猜你喜欢

转载自blog.csdn.net/coder_boy_/article/details/80588925