谁给看看我自己写的数据库查询 哪里错了?编译提示错误
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>

解决方案 »

  1.   

    你转到Java版去吧。这是JavaScript版
      

  2.   


    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 吧
      

  3.   

    楼主其实java的调试错误是很明显的,这个提示说你这个jsp文件无法编译,也就是有错误,首先是class引用不对,其次是有一行是缺少分号的,楼主检查一下
      

  4.   

    谢谢大家了  我把代码该好了编译可以通过 但是不能进入数据库查询! 无论输入什么都flag=false 数据库查询那段代码处了问题应该是...但是我还是找不出来!
    <%@ 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>
      

  5.   

    这里有问题:
    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派生该类后再重载。