我听说Properties
is legacy in Java.
load configuration of JDBC from a file中Properties
仍然使用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);
答案 0 :(得分:1)
是。至少在我的组织中,许多配置(不仅仅是数据库配置)仍然从属性文件加载,这是完全正常的并且运行良好。我认为,作为一个容器,Properties
类在引入Java集合框架之前就已经出现了,例如Vector
和Hashtable
。
另一方面,YAML
和JSON
等替代品越来越受欢迎。可能是因为用属性文件中的字段描述对象可能会变得重复。
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: ""