1. 创建一个文本db.properties
properties 文件内容
这个就是键值 key = value
整体的代码如下
package day01pm.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* DAO父类
*
* 基础类
* 提供所有的DAO 都需要兼备的特性
*
* @author ssd
*
*/
public class BaseDAO {
/**
* java.util.Properties类
* 用于读取properties文本文件类
* properties文件是一个纯文本的文件,里面的内容的定义有格式的要求
* 必须是key=value的形式,且以行为单位一行只记录一条数据
*properties类可以方便的读取properties文件,并将内容
*以类似HashMap的形式进行读取。注意!读取的都是字符串
*
*properties通常都是当做配置文件进行使用的。
*/
private static Properties properties = new Properties();
private static String driver = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "scott";
private static String pwd = "Shen2014";
/**
* 在静态初始化中注册驱动
* 驱动不需要重复注册,所以静态初始化最适合注册驱动
* @return
*/
static {
try{
/**
* 加载配置文件,读取配置信息
*/
properties.load(BaseDAO.class.getClassLoader().getResourceAsStream("" +
"day01pm/dao/db.properties" ));
System.out.println(properties.getProperty("jdbc.driver"));
/**
* 通过Properties的方法getProperty(String key)
* 方法可以将properties文件中
* jdbc.driver=oracle.jdbc.driver.OracleDriver
* 数据获取。获得的方法就是将jdbc.driver作为参数调用方法
* 返回的就是等号右边的oracle.jdbc.driver.OracleDriver
*/
driver = properties.getProperty("jdbc.driver");
url = properties.getProperty("jdbc.url");
pwd = properties.getProperty("jdbc.pwd");
user = properties.getProperty("jdbc.user");
// 加载驱动
Class.forName(driver);
/**
* oracle.jdbc.driver.OracleDriver类
* 在Class.froName()的时候被载入JVM
* OracleDriver 是JDBC中的Driver 的子类
* 他被要求在静态初始化的时候要将自身驱动的信息
* 通过DriverManager 的静态方法注册进去,这样DriverManager就
* 知道应该如何通过OracleDriver去连接数据库了。
* 所以之后就可以公国DriverManager 的另一个静态方法:
* getConnection()来根据之前的注册的驱动信息来获取连接了。
*/
Connection conn = DriverManager.getConnection(url,user,pwd);
}catch (Exception e){
e.printStackTrace();
//若注册失败,我们要通知调用者
throw new RuntimeException(e);
}
}
/**
* 获取数据库连接对象Connection
* @return
* @throws SQLException 当连接失败时抛出异常
*/
protected static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url,user,pwd);
}
protected static void closeConnection (Connection conn){
if(conn != null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}