使用DAO模式中的properties配置文件

使用JDBC访问数据库时,需要把驱动程序的URL、用户名、密码都写在程序代码中,那么在换用其他数据库或用户的时候,必须要重新修改并编译程序。这样显然为程序开发带来了不便,是否能够让用户脱离程序本身去修改相关的变量设置呢?

这时,我们就需要properties类,实现读取Java配置文件,这样方便维护和修改配置的信息

1.添加.properties文件

在mysql数据库中选中项目src文件夹右击,弹出一个快捷菜单选择"New"--->"File"命令

打开之后的效果:

在“新建文件”窗口中输入*(自定义名字).properties,单击“finish”按钮

创建之后的效果:

2.添加文件内容

创建好之后,需要向配置文件中添加配置信息,把驱动程序的URL、用户名、密码添加到*.properties配置文件中

#文件内容的格式是“键=值”格式
#key=value
#注释信息可以用“#”来注释
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/cars?useUnicode=true&characterEncoding=utf-8
user=root
#我连接数据库的时候没有密码,所以是空的
password=

需要根据自己的配置信息来配置,并且要修改你要连接的数据库名、连接的用户名以及密码

注意: 在properties配置文件中不需要打引号(“”)和分号(;)

等号左边的内容称为键,也就是程序中的变量;

等号右边的内容为键所对应的值,也就是根据实际情况为变量赋的值。

3.读取配置文件

加载MySQL驱动并配置参数的代码

public class BaseDao{
    private static String driver;       //数据库驱动字符串
    private static String url;          //连接URL字符串
    private static String user;         //数据库用户名
    private static String password;     //用户密码
    Connection conn=null;               //数据连接对象

    //静态代码块,在类加载的时候执行
    static {
        init();
    }

    //初始化连接参数,从配置文件中获得
    public static void init(){
        Properties properties=new Properties();
        String configFile="*.properties";   //配置文件的路径
        //加载配置文件到输入流中
        InputStream is = BaseDao.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
        }catch (Exception e){
            e.printStackTrace();
        }

        //根据指定的获取对应的值
        driver=properties.getProperty("driver");
        url=properties.getProperty("url");
        user=properties.getProperty("user");
        password=properties.getProperty("password");
    }
        //省略其他方法的代码…………
}

注释:通过getResourceAsStream(String name)方法获取配置文件“*.properties”的输入流,在通过load(InputStream inStream)方法从输入流中读取属性列表,最后使用getProperty(String key)方法读取到相应值。

将以上读取配置信息的代码封装在init()方法中,在静态代码块中调用,保证加载类时能将数据库配置信息读取到内存中。

还有一种,更加简便的读取方法

 public static Connection open(){
        //数据库连接对象
        Connection conn=null;
        //获取连接并捕获异常
        try{
            //读取属性文件中的数据
            Properties pro=new Properties(); //读取配置用的对象
            //读取配置文件
            //DButil.class 通过当前类得到类加载器得到跟路径下的db配置文件
            InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
            //对象读取文件流
            pro.load(is);

            //数据库驱动字符串
            Class.forName(pro.getProperty("driver"));
            conn = DriverManager.getConnection(pro.getProperty("url"),pro.getProperty("user"),pro.getProperty("password"));
        }catch (Exception e){
            e.printStackTrace();   //处理异常
        }
        return conn;   //返回连接对象
    }

个人认为:这种读取的方法较简单,推荐用第二种读取方法。

希望这篇博客能帮助到大家学习……

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值