【发布时间】:2017-01-28 11:01:22
【问题描述】:
我在 JDBC 中有这段代码(在 NetBeans IDE 8.1 中使用),它没有从第二个结果集中提取数据。已经尝试过几个答案,但直到现在都没有解决方案............
我写的代码贴在下面:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
Connection conn= null;
Statement stmt1= null;
Statement stmt2= null;
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head><title>Servlet test_servlet</title>");
out.println("<link href=\"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\" rel=\"stylesheet\">");
out.println("<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js\"></script>");
out.println("<script src=\"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js\"></script>");
out.println("</head><body>");
out.println("<div class=\"container-fluid\">");
//Register Driver
out.println("<h5>Trying to register</h5>");
Class.forName("oracle.jdbc.driver.OracleDriver");
out.println("<h5>Registered successfully</h5>");
//Open a connection
out.println("<h5>Trying to connect to the XE database...</h5>");
conn=DriverManager.getConnection("jdbc:oracle:thin:@Toshiba:1521:xe","SYSTEM","oraclee");
out.println("<h5>Connected Successfully</h5>");
//Executing queries
stmt1=conn.createStatement();
stmt2=conn.createStatement();
String [] subj=new String[5];
int i=0;
ResultSet rst1=stmt1.executeQuery("select * from TESTINGTABLE");
while(rst1.next()){
//int numb=rst.getInt(1);
subj[i]=rst1.getString("E_NAME").toString();
out.println("Hello "+subj[i]);
out.println("<br>");
i++;
}
rst1.close();
ResultSet rst2=stmt2.executeQuery("select * from TESTTABLE");
while(rst2.next()){
String antt=rst2.getString(1).toString();
out.println("Hi "+antt+"<br>");
}
rst2.close();
out.println("<h5>Result set object closed</h5>");
stmt2.close();
stmt1.close();
out.println("<h5>Statement object closed</h5>");
conn.close();
out.println("<h5>Connection object closed</h5>");
out.println("</div>");
out.println("</body>");
out.println("</html>");
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
它提供给我的输出是:
Trying to register
Registered successfully
Trying to connect to the XE database...
Connected Successfully
Hello Joe
Hello Chris
Hello James
Hello Eve
Hello Thomas
它不显示来自第二个结果集的数据。
我在这个程序中使用的两个表如下:
1> TESTINGTABLE 只有一列 (E_NAME),其中包含 5 个值 乔、克里斯、詹姆斯、夏娃、托马斯
2> TESTTABLE 只有一列 (E_NAME),其中有 1 个值 玛丽亚姆
【问题讨论】:
-
如果您先从 TESTTABLE 中选择,它是否返回 Mariam?我的意思是如果 stmt1 从 TESTTABLE 中选择。
-
请编辑您的问题以获得更具描述性的标题,以及已打印出来的任何例外情况。
-
我很确定
"select * from TESTTABLE'"末尾的'会导致错误。你应该有一个异常的堆栈跟踪
标签: java database jdbc resultset