`Properties`是否仍然用于从文件加载JDBC的配置?

时间:2018-06-13 01:26:19

标签: java jdbc properties

我听说Properties is legacy in Java.

load configuration of JDBC from a fileProperties仍然使用Properties吗?

没有db.properties,我们怎么能这样做?通过普通的文件读取功能并手动解析文件?

  

您可以将Properties props = new Properties(); FileInputStream in = new FileInputStream("/external/configuration/dir/db.properties"); props.load(in); in.close(); String driver = props.getProperty("jdbc.driver"); if (driver != null) { Class.forName(driver) ; } String url = props.getProperty("jdbc.url"); String username = props.getProperty("jdbc.username"); String password = props.getProperty("jdbc.password"); Connection con = DriverManager.getConnection(url, username, password); 文件保存到外部固定位置,   并访问它以便以后检索您的连接属性:

     
# Oracle DB properties
#jdbc.driver=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@localhost:1571:MyDbSID
#jdbc.username=root
#jdbc.password=admin

# MySQL DB properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDbName
jdbc.username=root
jdbc.password=admin
     

然后,在每个环境中,您都可以拥有不同的副本   数据库设置,无需更改您的应用程序文件   (JAR,ER或其他)。

     

示例数据库连接属性文件:

     
somePanel.functionB.and.returnValue(true);

1 个答案:

答案 0 :(得分:1)

是。至少在我的组织中,许多配置(不仅仅是数据库配置)仍然从属性文件加载,这是完全正常的并且运行良好。我认为,作为一个容器,Properties类在引入Java集合框架之前就已经出现了,例如VectorHashtable

另一方面,YAMLJSON等替代品越来越受欢迎。可能是因为用属性文件中的字段描述对象可能会变得重复。

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDbName
jdbc.username=root
jdbc.password=admin

虽然YAML中的相同配置会更简洁和可读(?)。

jdbc:
  driver: "com.mysql.jdbc.Driver"
  url: "mysql://localhost:3306/MyDB"
  username: "root"
  password: ""