背景
1 在src 路径下创建 配置文件 db.properties
2 在工具util包中 创建类 ConfigManager
父类 :BaseDao.java 中有 自定义连接方法getConnection(),将其中的driver,url,username,password 修改成调用ConfigManager的方法得到;
db.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/kgcnews jdbc.username=root jdbc.password=rootConfigManager
package com.kgc.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class ConfigManager { /*1.单例模式只能有一个实例 *2.单例模式必须自己建立一个唯一的实例 *3.单例类必须给整个项目的其他对象提供这个实例 *单例模式分为 饱汉类和饿汉类 * */ //饿汉模式 //private static ConfigManager cm=new ConfigManager(); //饱汉模式 private static ConfigManager cm; public Properties p; //构造器 通过 输入流 读取 配置文件 public ConfigManager(){ //将 配置文件 db.properties 转化成 输入流 InputStream is=ConfigManager.class.getClassLoader().getResourceAsStream("db.properties"); //加载流 try { p.load(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(is!=null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } // 通过配置文件的 key 得到 对应的value public String getValue(String key){ return p.getProperty(key); } /*饿汉模式 public static ConfigManager getInstance(){ return cm; }*/ //饱汉模式:创建一个自身的实例 public static ConfigManager getInstance(){ if(cm==null){ cm=new ConfigManager(); } return cm; } }
BaseDao.java
public class BaseDao { //实现增删改查的功能 以及连接 和释放资源 Connection cnt=null; PreparedStatement ps=null; ResultSet rs=null; //连接有3种方式 :通过配置文件连接 public boolean getConnection(){ String driver=ConfigManager.getInstance().getValue("jdbc.driver"); String url=ConfigManager.getInstance().getValue("jdbc.url"); String username=ConfigManager.getInstance().getValue("root"); String password=ConfigManager.getInstance().getValue("root"); try { Class.forName(driver); cnt=DriverManager.getConnection(url,username,password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return true; } 下面省略——————————