java - 我的代码显示错误

标签 java mysql jsp jdbc

我的分页代码从 html 文件中获取页码值,并使用 sql 数据库表中的分页逻辑显示特定页面。 我在这里给出了代码,然后显示了错误。请帮助 .提前致谢!!

<%@ page contentType="text/html; charset=iso-8859-1" language="java"                         import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellpadding="0" cellspacing="0"      bgcolor="#CCCCCC">
    <tr bgcolor="#66FF99">
  <td>Sr.</td>
  <td>Name</td>
  <td>Cost</td>

</tr>




<%


int p= Integer.parseInt(request.getParameter("textfield"));
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/tiop","root","root");
Statement stat=con.createStatement();
ResultSet rs=stat.executeQuery("select * From (select * , Row_Number() over   (order by Sr) as RowNum From cre )T where T.RowNum between ((p-1)*5)+1
and (p*5)");

while(rs.next())
{



%>
<tr>
  <td bgcolor="#99CC33"><%=rs.getInt(1)%></td>
  <td bgcolor="#669966"><%=rs.getString(2)%></td>
  <td bgcolor="#FF3333"><%=rs.getInt(3)%></td>

</tr>

<%
}

%>
 </table>
</form>
</body>
</html>

显示错误:

HTTP Status 500 - Unable to compile class for JSP:

type Exception report

message Unable to compile class for JSP:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 29 in the jsp file: /pa.jsp
String literal is not properly closed by a double-quote
26: Class.forName("com.mysql.jdbc.Driver");
27: Connection con=DriverManager.getConnection("jdbc:mysql://localhost/tiop","root","root");
28: Statement stat=con.createStatement();
29: ResultSet rs=stat.executeQuery("select * From (select * , Row_Number() over (order by Sr) as RowNum From cre )T where T.RowNum between ((p-1)*5)+1
30: and (p*5)");
31: 
32: while(rs.next())


Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:199)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:446)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.9 logs.

Apache Tomcat/8.0.9

最佳答案

无错误证明 proof of no-errors

解决方案:复制并粘贴以下内容:@Barranka 也是正确的

String query = "select * From (select * , Row_Number() over (order by Sr) as RowNum From cre )T where T.RowNum between ((p-1)*5)+1 and (p*5)";
ResultSet rs = stat.executeQuery(query);

如果您无法将完整的select-query放在一行上。执行以下操作:

ResultSet rs = stat.executeQuery("select * From (select * , Row_Number() over (order by Sr) as RowNum From cre )T where T.RowNum between ((p-1)*5)+1" + 
"add (p*5)");

问题出在哪里?

Suggested by StackTrace "String literal is not properly closed by a double-quote"

在下一行的 XXX 标记上。换行导致了这个问题。 and (p*5)" 位于下一行,没有连接。

"select * From (select * , Row_Number() over (order by Sr) as RowNum From cre )T where T.RowNum between ((p-1)*5)+1
XXX and (p*5)"

为了简单起见:将查询存储在字符串中、连接多个查询、简化长查询并在查询执行中使用它们。此外,还有助于重用该查询。

关于java - 我的代码显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129625/

相关文章:

java - 选择查询很慢

php - 如何使用 symfony4 形式更新文件 .env

php - cron 作业会导致服务器瘫痪吗?

JQuery 数据表不工作

java - 如何计算字符串中字符的出现次数?

java - 使用 Android 将图像读取为字节数组:skImageDecoder::Factory 返回 null

java - Eclipse Maven构建成功,但项目仍然报编译错误

java - ConstraintViolationException : NOT NULL when using Spring, HSQL 和 Hibernate

java - 如何使用 JSTL 检查 session 中是否存在登录用户?

java - 如何访问 JSP scriptlet 中的模型属性字段?