2016-11-22 46 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」,用戶名,密碼);

相關問題