0
我试图通过JDBC连接到Oracle 11g,当我在getConnection()
方法中传递用户名和密码时,我可以连接到数据库就好了。但是,当我试图从用户那里接受输入并将其作为参数传递时。通过JDBC连接oracle 11g时出现无效的用户名/密码(110%确定登录凭据正确)
我面对这个错误
值java.sql.SQLException:ORA-01017:无效的用户名/密码;登录被拒绝。
我使用Thin驱动程序,这是我的代码看起来像:
Connection c=null;
private void getConnection() throws SQLException
{
System.out.println("Enter login credentials");
Scanner login=new Scanner(System.in);
Object Username=login.nextLine();
Object Password=login.nextLine();
System.out.println("username"+Username);
System.out.println("password"+Password);
c=DriverManager.getConnection("jdbc:oracle:thin:@//localhost:(Omitted wantedly)/XE","Username","Password");
}
我能够通过SQL命令提示符下使用相同的凭据连接到数据库。我也尝试解锁我在其中的用户,但它也没有帮助。请帮忙 !
在您发布的代码中,您传递的是用户名和密码的硬编码字符串“用户名”和“密码”,而不是本地变量的用户名和密码。这是实际的问题还是在发布代码示例时出现转录错误? –
@JustinCave我通过局部变量“用户名”和“密码”类型对象 –
我已经找到了问题。感谢您的帮助。“用户名和密码的值不应该在双重qoutes中传递”,并且它们的数据类型是getConnection()中不可接受的,它们必须是String类型。 –