Java 具有2个resultset循环的Servlet
在我的servlet中,我连接了两个表,并希望一次显示一个表,只要没有显示数据,就显示另一个表。此servlet将根据所选id显示其属性 这是密码Java 具有2个resultset循环的Servlet,java,mysql,sql,servlets,while-loop,Java,Mysql,Sql,Servlets,While Loop,在我的servlet中,我连接了两个表,并希望一次显示一个表,只要没有显示数据,就显示另一个表。此servlet将根据所选id显示其属性 这是密码 Connection con; PreparedStatement ps; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://lo
Connection con;
PreparedStatement ps;
ResultSet rs;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/kps","root","KPSAdmin1234!");
ps = con.prepareStatement("Select * from applicant a INNER JOIN JOB B where A.J_ID = B.J_ID AND B.J_ID = '" + j_id + "'" );
rs = ps.executeQuery();
while(rs.next())
{
//1st table
String j_title = rs.getString("j_title");
String j_description = rs.getString("j_description");
String j_location = rs.getString("j_location");
String j_type = rs.getString("j_type");
String j_empType = rs.getString("j_empType");
String d_name = rs.getString("d_name");
String j_responsibilities = rs.getString("j_responsibilities");
String j_salary = rs.getString("j_salary");
//2nd table
String js_id = rs.getString("js_id");
String js_name = rs.getString("js_name");
String js_ic = rs.getString("js_ic");
String js_mobile = rs.getString("js_mobile");
String js_email = rs.getString("js_email");
//<!-- want to display once -->
pw.println("<div class=\"panel-body\">");
pw.println("<title>"+j_title+"</title>");
pw.println("<div class=\"column left\">");
pw.println("<div style=\"font-family: Barlow;\">");
pw.println("<font size = \"5\";>" + j_title+"</font>");
pw.println("<h5><font size = \"2\";> <img src=\"img/location.png\"style=\"width:12px;height:12px;\"> " + j_location + "</td>");
pw.println("<br><br><strong><p>RESPONSIBILITIES</p></strong>");
pw.println("<br><p>" + j_responsibilities + "</p><br></td>");
pw.println("<br><br><strong><p>REQUIREMENT</p></strong>");
pw.println("<br><p>" + j_description + "</p></td>");
pw.println("</div>");
pw.println("</div>");
pw.println("<div class=\"column right\">");
pw.println("<br> <img src=\"img/rm.png\"style=\"width:16px;height:16px;\"> " + j_salary );
pw.println("<br> <img src=\"img/check.png\"style=\"width:14px;height:14px;\"> " + j_type );
pw.println("<br> <img src=\"img/briefcase.png\"style=\"width:14px;height:14px;\"> " + j_empType + "<br><br>");
pw.println("</div>");
pw.println("</div>");
pw.println("</div>");
pw.println("</div>");
//<!--end of display once-->
//want to display as long as there is data in the database so basically while(rs.next())
pw.println("<div class=\"row\">");
pw.println("<div class=\"col-lg-12\">");
pw.println("<section class=\"panel\">");
pw.println("<header class=\"panel-heading\">List Of Applicant</header>");
pw.println("<div class=\"panel-body\">");
pw.println("<br><font size = \"3\"<br><a href='resume.jsp?js_id=" + js_id +"'>" +js_name+ "</a></font>");
pw.print(" <font size=\"2\" "+ js_ic +" | " +js_email +" | "+ js_mobile);
pw.println("  <a class=\"btn btn-primary\" href='ViewJobApplicant?js_id=" + js_id +"'>View Response</a></font>");
}
是的,所以它必须是在一段时间内
所以我用不同的sql查询进行了两次查询,错误是当一段时间停止时,它不能再运行一次
有什么解决方案吗?您显示的SQL将为第一个表
申请人
返回多行,并伴随第二个表作业的行。好。。。您的代码中有两个问题:
- 您需要按第一个表行对行进行排序。您可能希望使用一个键,最好是表的主键。类似于
按申请人排序.id
- 其次,当您从一个
申请人更改为下一个申请人时,您需要“检测”。您需要在检索检测申请者更改的行并相应地显示它时添加逻辑
我建议您采用MVC模式。Servlet用于获取数据,JSP用于显示data@ScaryWombat所以我需要将servlet转换为jsp?
java.sql.SQLException: Before start of result set