2016-11-22 240 views
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命令提示符下使用相同的凭据连接到数据库。我也尝试解锁我在其中的用户,但它也没有帮助。请帮忙 !

+0

在您发布的代码中,您传递的是用户名和密码的硬编码字符串“用户名”和“密码”,而不是本地变量的用户名和密码。这是实际的问题还是在发布代码示例时出现转录错误? –

+0

@JustinCave我通过局部变量“用户名”和“密码”类型对象 –

+0

我已经找到了问题。感谢您的帮助。“用户名和密码的值不应该在双重qoutes中传递”,并且它们的数据类型是getConnection()中不可接受的,它们必须是String类型。 –

回答

1

只是取代用户名和密码的双引号。

C =的DriverManager.getConnection( “JDBC:预言:瘦:@ //本地主机:(已失 wantedly)/ XE”,用户名,密码);

相关问题