<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<%
  try{
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  String url="jdbc:mysql://localhost/notebook?user=root&password=1234";
  Connection conn=DriverManager.getConnection(url);
  Statement stmt=conn.createStatement();
  out.println(stmt.execute("insert into users (username) values ('ht')"));
  stmt.close();
  conn.close();
  }
  catch(SQLException e)
  {
  out.println("发生异常:"+e.getMessage());
  }
%>
新数据已经插入数据库中
为什么结果总是false?

解决方案 »

  1.   

    不是,有主键id autoincrease
      

  2.   

    statement.execute()返回false并不代表sql语句执行失败,因为只有执行结果是ResultSet时才返回true,insert、update返回的都是false。你可以用statement.executeUpdate()代替,它返回的是更新的行数。
      

  3.   

    那么statement.execute();一般应用在什么情况下?
      

  4.   

    一般很少用,如果sql语句执行结果是多个ResultSet或者更新计数时才用到。
      

  5.   

    用executeUpdate这个方法来进行插入操作
      

  6.   

    statement.execute()用在查询时返回数据集的
    statement.executeUpdate()用在对数据库操作时成功的次数也就是行数,它返回的也不是真和假,但你可以自己判断一下,
    sdfasd = false;
    if(statement.executeUpdate(".........")>0)
    {
    sdfasd = true;
    }
    return sdfasd;