谁给看看我自己写的数据库查询 哪里错了?编译提示错误
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error on token "class", invalid ExpressionAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error, insert ")" to complete MethodInvocationAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error, insert ";" to complete BlockStatements
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)以下是我的代码 可能有点乱 ,本人新手 麻烦了<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%
String s[];
String name=request.getParameter("textfield");
s = name.split(" ");
%>
<%
Connextion con;
Statement sql;
ResultSet rs; try{
class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
try{
con=DriverManger.getConnection("jdbc:odbc:biyeseji,"","");
sql=con.createStatement();
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[1]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+s[1]+"%' ");
if(rs.next()){
// 如果有内容,则此处执行,表示查询出来,合法用户
flag = true ;
}
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"分类号");
out.print("<TH width=100>"+"全宗号");
out.print("<TH width=50>"+"页号");
out.print("<TH width=50>"+"文件题名");
out.print("<TH width=50>"+"sort1");
out.print("</TR>");
while(rs.next())
{
out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt(5)+"</TD>");
out.print("<TD >"+rs.getInt(9)+"</TD>");
out.print("<TD >"+rs.getInt(20)+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close(); }
catch(SQLException e1)
{}
%>
<%
if(flag){ // 登陆成功,应该跳转到success.jsp
%>
<%
}else{ // 登陆失败,跳转到failure.jsp
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>
</BODY>
</HTML>
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error on token "class", invalid ExpressionAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error, insert ")" to complete MethodInvocationAn error occurred at line: 11 in the jsp file: /check.jsp
Generated servlet error:
Syntax error, insert ";" to complete BlockStatements
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)以下是我的代码 可能有点乱 ,本人新手 麻烦了<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%
String s[];
String name=request.getParameter("textfield");
s = name.split(" ");
%>
<%
Connextion con;
Statement sql;
ResultSet rs; try{
class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
try{
con=DriverManger.getConnection("jdbc:odbc:biyeseji,"","");
sql=con.createStatement();
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[1]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+s[1]+"%' ");
if(rs.next()){
// 如果有内容,则此处执行,表示查询出来,合法用户
flag = true ;
}
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"分类号");
out.print("<TH width=100>"+"全宗号");
out.print("<TH width=50>"+"页号");
out.print("<TH width=50>"+"文件题名");
out.print("<TH width=50>"+"sort1");
out.print("</TR>");
while(rs.next())
{
out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt(5)+"</TD>");
out.print("<TD >"+rs.getInt(9)+"</TD>");
out.print("<TD >"+rs.getInt(20)+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close(); }
catch(SQLException e1)
{}
%>
<%
if(flag){ // 登陆成功,应该跳转到success.jsp
%>
<%
}else{ // 登陆失败,跳转到failure.jsp
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>
</BODY>
</HTML>
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[1]+"%' ");
rs+=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '"%+s[0]+s[1]+"%' ");你这叫联合查询 这样的语句你也能写出来 用union 吧
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<a href="login.jsp">返回</a>!</h1>
<HTML>
<BODY>
<%
String s[];
String name=request.getParameter("textfield");
s = name.split(" ");
%>
<%
Connection con;
Statement sql;
ResultSet rs;
boolean flag = false ; // 表示登陆成功或失败的标记 try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
try{
con=DriverManager.getConnection("jdbc:odbc:biyeseji","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM da_jnwjb WHERE tmh LIKE '%"+s[0]+"%' OR tmh LIKE '%"+s[0]+"%' OR tmh LIKE '%"+s[0]+s[1]+"%'");
if(rs.next()){
// 如果有内容,则此处执行,表示查询出来
flag = true ;
}
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"分类号");
out.print("<TH width=100>"+"全宗号");
out.print("<TH width=100>"+"页号");
out.print("<TH width=150>"+"文件题名");
out.print("<TH width=200>"+"sort1");
out.print("</TR>");
while(rs.next())
{
out.print("<TR>");
out.print("<TD >"+rs.getInt("flh")+"</TD>");
out.print("<TD >"+rs.getInt("qzh")+"</TD>");
out.print("<TD >"+rs.getInt("yh")+"</TD>");
out.print("<TD >"+rs.getString("tmh")+"</TD>");
out.print("<TD >"+rs.getInt("sort1")+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close(); }
catch(SQLException e1)
{}
%>
<%
if(!flag){ // 登陆成功,应该跳转到success.jsp%>
<jsp:forward page="failure.jsp"/>
<%
}
%>
</BODY>
</HTML>
try{
class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
(1) class-->Class。这是引起上面编译错误的原因。
(2)JDBC没有正确初始化
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
}
catch(ClassNotFoundException e)
{}另外,正如楼上说的,联合查询需要使用union。ResultSet实例没有直接满足你希望的+=算符,除非LZ派生该类后再重载。