在通常情况下,
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");
("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");
是获取数据库连接的常用方式。
但是如果现在要用sys账户建立连接(大多数情况下不应该这么做),那么会出现无效用户名密码的错误,原因就是sys账户的连接需要指定其DBA角色(sysdba)。
在这个时候你就知道Oracle的JDBC文档有多么重要了,它总是在你需要的时候准时出现。
通过阅读文档,知道getConnection重载的一个版本是:
getConnection(String url, java.util.Properties info)
通过Properties对象将用户名、密码、角色等参数带入这个方法。
例如:
//specify the properties object
java.util.Properties info = new java.util.Properties();
info.put ("user", "sys");
info.put ("password", "change_on_install");
info.put ("internal_logon","sysdba");
//specify the connection object
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@database",info);
当然,还可以指定其他连接属性。
java.util.Properties info = new java.util.Properties();
info.put ("user", "sys");
info.put ("password", "change_on_install");
info.put ("internal_logon","sysdba");
//specify the connection object
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@database",info);
当然,还可以指定其他连接属性。