连接到数据库时使用java.util.properties有什么好处?
我正在阅读,我注意到有一个例子使用java.util.properties对象,如下所示连接到数据库时使用java.util.properties有什么好处?,java,oracle,jdbc,Java,Oracle,Jdbc,我正在阅读,我注意到有一个例子使用java.util.properties对象,如下所示 public class Connector { Connection con = null; private Properties info = new Properties(); public void connect(){ info.put("user", "sys as sysdba"); info.put("password", "te
public class Connector {
Connection con = null;
private Properties info = new Properties();
public void connect(){
info.put("user", "sys as sysdba");
info.put("password", "testpass");
String driverName = "oracle.jdbc.driver.OracleDriver";
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String serverName = "localhost";
String port = "1521";
String sid = "XE";
String url = "jdbc:oracle:thin:@" + serverName + ":" + port + ":" + sid;
try {
con = DriverManager.getConnection(url, info);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void closeConnection(){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我已经检查了API,我知道属性的主要好处是读取本地源代码。使用java.util.properties的Google OCI驱动程序示例比精简驱动程序示例更多。我的问题是,
*我应该使用精简驱动程序的属性吗?
*如果是,有什么好处
*为什么我不能将全部细节转换为必须使用字符串对象进行连接的属性
谢谢属性可以从类路径上的一些jdbc.properties
文件加载,该文件允许您进行外部配置。其唯一内容可能如下所示:
user=sys as sysdba
password=testpass
因此,与其
info.put("user", "sys as sysdba");
info.put("password", "testpass");
你可以
(注意,文件名由您自由选择,只要在运行时类路径中,它就可以工作)
通过这种方式,您不需要在任何时候更改连接详细信息时编辑、重新编译、重新生成或修改类。您只需编辑一个简单的基于文本的文件。这对于需要由不懂Java的人(例如serveradmins)管理的分布式应用程序尤其有用
另见:
jdbc.properties
文件加载,该文件允许您进行外部配置。其唯一内容可能如下所示:
user=sys as sysdba
password=testpass
因此,与其
info.put("user", "sys as sysdba");
info.put("password", "testpass");
你可以
(注意,文件名由您自由选择,只要在运行时类路径中,它就可以工作)
通过这种方式,您不需要在任何时候更改连接详细信息时编辑、重新编译、重新生成或修改类。您只需编辑一个简单的基于文本的文件。这对于需要由不懂Java的人(例如serveradmins)管理的分布式应用程序尤其有用
另见:
任何对此感兴趣的人可能也会对internal_logon属性感兴趣,因为它是针对特定角色(如sysdba)登录而提到的,但我也没有成功使用它。谢谢您的回答。我也可以用在瘦司机身上吗?我真的不明白他们为什么需要特殊处理。哦,我想补充一点,您也可以将servername、port、sid等放在这样的属性文件中,并通过
info.getProperty(“servername”)
等方式获得它。谢谢您的回答。我也可以用在瘦司机身上吗?我真的不明白他们为什么需要特殊处理。哦,我想补充一点,您还可以将servername、port、sid等放在这样的属性文件中,并通过info.getProperty(“servername”)
等方式获取它。