org.apache.jasper.JasperException: An exception occurred processing JSP page /test_utf8.jsp at line 118: String url="jdbc:mysql://localhost/cass";
9: Connection  conn=DriverManager.getConnection(url,"root","");
10: Statement stmt = conn.createStatement();
11: stmt.executeQuery("insert into sys_radi values(111, 23, 'abc'");
12: String sqlstr="select * from sys_radi";
13: ResultSet rs= stmt.executeQuery(sqlstr);
14: 
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)顺便说下,我的MySQL数据库用utf8编码,JSP网页本身也用UTF8编码存储。insert错误是否与此有关?应该怎么才能顺利插入数据呢?

解决方案 »

  1.   

    stmt.executeQuery("insert into sys_radi values(111, 23, 'abc'"); 改成
    stmt.executeUpdate("insert into sys_radi values(111, 23, 'abc'"); 
      

  2.   

    继续改一下
    stmt.executeUpdate("insert into sys_radi values(111, 23, 'abc')");
      

  3.   

    executeQuery是执行查询结果的。
    改用batchExecute(先addbatch)或executeUpdate都可以。
      

  4.   

    11: stmt.executeQuery("insert into sys_radi values(111, 23, 'abc')"); 
      

  5.   

    感谢各位,dodojava老兄给的那个语句最好用,现在不提示出错了,但是insert语句执行完之后,数据仍然插入不到数据库中去。因为后续的select操作读取不到东西。我的数据库是用如下命令创建的:mysql> drop database if exists cass;
    mysql> create database cass DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> use cass;
    mysql> create table sys_radi(ID int not null, bsbh int not null, bschar varchar(20) not null);
    我的JSP网页内容如下:<%@ page contentType="text/html; charset=UTF-8" %>
    <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.* "%>
    <%request.setCharacterEncoding("UTF-8");%>
    <html> 
    <body> 
    <%
    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url="jdbc:mysql://localhost/cass";
    Connection  conn=DriverManager.getConnection(url,"root","");
    Statement stmt = conn.createStatement();
    stmt.executeUpdate("insert into sys_radi values(111, 23, 'abc')");
    String sqlstr="select * from sys_radi";
    ResultSet rs= stmt.executeQuery(sqlstr);while(rs.next()){
    out.println(rs.getString(1));
    out.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
    out.println(rs.getString(2));
    out.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
    out.println(rs.getString(3));
    out.println("<br>");
    }
    out.println("<br>");
    out.print("恭喜~! 打开数据库操作成功!");
    rs.close();
    stmt.close();
    conn.close();
    %>
    </body> 
    </html> 
    请高手看看为什么insert不出错了但还是没能够插入数据成功。我下一步应该怎么样修改代码呢?
      

  6.   

    呵呵,在select之前刚刚用
    stmt.executeUpdate("insert into sys_radi values(111, 23, 'abc')"); 
    语句来插入了一条记录。
    但是就是插入不到数据库中。