JDBC中获取 Properties类的对象

问题:  数据库四大参数:  写在代码中, 写死, 修改这个四个参数, 需要去修改源码, 重新编译, 

解决方案:  把这四大参数不写在源码中, 需要一个文件存放, 代码中,使用IO流读取文件,

Jdk提供一个  Properties类,  是Map的一个实现类,  存放的也是key/value, 关联硬盘某个文件,要求这个文件的后缀名: .properties(文本文件)

 这个文件格式:

   Key1=value1

   Key2=value2

   .....

这个文件一般放在src目录下

推荐写法:

//1.创建Properties类的对象
        Properties props = new Properties();
        try {
            //2.加载数据 ***
            props.load(Thread.currentThread().getContextClassLoader()
       .getResourceAsStream("test.properties")); //3.获取数据, 通过key获取value value getProperty(key) System.out.println(props.getProperty("name")); System.out.println(props.getProperty("age")); System.out.println(props.getProperty("sex")); } catch (IOException e) { e.printStackTrace(); }

这个文件路径: 绝对路径, 如果这个项目位置发生变化,这个路径也需要修改,
  props.load(new FileInputStream("D:\\code\\代码\\jdbc02\\src\\test.properties"));

使用相对路径:
第一种写法:
     Demo2.class.getResourceAsStream() 参考点: Demo2.java所在的目录
    要求这个文件与这个类在同一个目录
    InputStream in = Demo2.class.getResourceAsStream("test.properties");
    文件路径: src/jdbc02/test.properties


第二种写法 Demo2.class.getClassLoader().getResourceAsStream() 参考点: src
    InputStream in = Demo2.class.getClassLoader().getResourceAsStream("test.properties");


第三种写法: (推荐
    Thread.currentThread().getContextClassLoader().getResourceAsStream(dbconfig); 参考点:src

posted @ 2020-04-27 21:25  64Byte  阅读(165)  评论(0编辑  收藏  举报