我无法使用java连接到我的数据库

问题描述:

Connection conn = null; 
Statement stmt=null; 
ResultSet rset=null; 
String jdbc_url="jdbc:oracle:thin:hr/[email protected]:1521:XE"; 
String query=""; 
try 
{ 
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); 
    conn=DriverManager.getConnection(jdbc_url); 
    stmt=(Statement) conn.createStatement(); 
    query="select first_name" +"from employees"+"where employeed_id=100"; 
    rset=stmt.executeQuery(query); 
    System.out.println(rset.getString(1)); 


} 
catch(SQLException | NumberFormatException e) 
     { 
      System.out.println("result error"); 
     } 
finally{ 
    try{ 
     rset.close(); 
     stmt.close(); 
     conn.close(); 

    } 
    catch(Exception e) 
    { 
     System.out.println("Error in closing"); 
    } 
} 

我在结果窗口中看到两个错误,是什么问题?小时密码是否正确,我的主机名是否正确,是不是您在Windows XP中右键单击“我的电脑”后从“计算机名称”中获得的名称?我无法使用java连接到我的数据库

编辑:使用e.getMessage()后,我得到了这个..

result error, ResultSet.next was not called

+2

你有没有trie用localhost代替主机名? – lfergon

+0

@localhost:1521:XE? 它没有工作 –

+2

在问SO之前总是看看异常。使用printStackTrace()int catch子句。 –

异常的错误消息,你已经投入的意见,告诉你什么是错的:

结果错误,ResultSet.next不叫

你忘了在访问结果集的第一行前调用ResultSet.next():

if (rset.next()) { 
    System.out.println(rset.getString(1)); 
} 
+0

谢谢,这解决了它

因为你使用NetBeans IDE中,你可以尝试用自己的built in tool连接。这应该有助于你获得jdbc_url的权利(这几乎肯定是问题)。另外,不要忘记下载并包含在你的课程路径中ojdbc6.jar(如果你不包含它,肯定会成为问题)。

+0

使用e.getMessage()后,我得到了这个.. 结果错误,没有调用ResultSet.next –

+1

哪条线是错误抛出...这使得它听起来像你连接成功... – kentcdodds

e变量表示异常。尝试打印e.getMessage()或使用e.printStackTrace()打印堆栈跟踪以更好地理解问题。

+0

使用后e.getMessage(),我得到这个.. 结果错误,没有调用ResultSet.next –

ResultSet rset = stmt.executeQuery(); 
while(rset.next()){ 
    //Code that works with results 
}