Connection conn = null;
Statement stmt=null;
ResultSet rset=null;
String jdbc_url="jdbc:oracle:thin:hr/hr@bassam-desktop: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");
}
}
我在结果窗口中遇到两个错误,问题是什么? hr密码是否正确,我的主机名是否正确,是不是您在Windows XP中右键单击“我的电脑”后从“计算机名称”获得的密码?
编辑:使用e.getMessage()后,我得到了这个..
result error, ResultSet.next was not called
答案 0 :(得分:3)
您在评论中添加的异常错误消息告诉您错误:
结果错误,未调用ResultSet.next
在访问结果集的第一行之前,您忘记调用ResultSet.next():
if (rset.next()) {
System.out.println(rset.getString(1));
}
答案 1 :(得分:0)
因为您使用的是Netbeans IDE,所以可以尝试使用他们的built in tool进行连接。这应该有助于你获得jdbc_url
权利(这几乎肯定是问题)。此外,不要忘记下载并在您的类路径中包含ojdbc6.jar
(如果您不包括它,肯定会出现问题)。
答案 2 :(得分:0)
e变量代表异常。尝试打印e.getMessage()或使用e.printStackTrace()打印堆栈跟踪以更好地理解问题。
答案 3 :(得分:0)
ResultSet rset = stmt.executeQuery();
while(rset.next()){
//Code that works with results
}