我是初学者,我做了一个项目,是一个数据库有关的验证的网叶!但是做完了 一切都正常,就是向数据库里添加不了数据;数据库正确连上!
有什么情况JDBC 不能更新SQL语句,我认为我的代码没有错!
还有就是如果 JAVABEAN(里面是封装 JDBC连接,操作的BEAN)里面没有CLOSE()方法!会不会是这个原因造成的呢!数据库不关闭能不能写进去数据通过JDBC热
regusrsage.jsp(部分代码如下,我认为可能有问题的地方)
boolean isAdd = user.add();
if(isAdd)
{
%>
<br><br><br><br>
<p align=center>
<font size=5><b>注册成功!</b>
</font>
</p>
<p align=center>
<input type=button name=btnlogin value=登录 onclick=javascript:window.location='userLogin.jsp' > 
</p>
<%

}
else
{
%>
<p align=center>
<font size=5 blue=red>
<b>注册失败,请稍后再试!</b>
</font>
</p>
<p align=center>
<input type=button name=btnlogin value=返回 onclick=javascript:window.history.go(-1) > </p>
<%
}%>
//user是封装数据库操作的BEAN
//add()方法如下!  add()是user.java中的一个方法!里面实现更新操作!代码如下:
--------------------------------------------------------------------------
 public boolean add()
   {
        
        strSql="insert into users ";
        strSql=strSql + "(";
        strSql=strSql + "userName,";
        strSql=strSql + "userPassword,";
        strSql=strSql + "email,";
        strSql=strSql + "sex,";
        strSql=strSql + "identityID,";
        strSql=strSql + "shopName,";
        strSql=strSql + "shopIntro,";        
        strSql=strSql + "shopper,";
        strSql=strSql + "realName,";        
        strSql=strSql + "mainFields,";    
        strSql=strSql + "telephone,"; 
        strSql=strSql + "createDate,";  
        strSql=strSql + "sysRole,";    
        strSql=strSql + "tag";       
        strSql=strSql + ") ";
        
strSql=strSql + "values(";
strSql=strSql + "'" + userName + "',";
strSql=strSql + "'" + userPassword + "',";
strSql=strSql + "'" + email + "',";
strSql=strSql + "'" + sex + "',";
strSql=strSql + "'" + identityID + "',";
strSql=strSql + "'" + shopName + "',";
strSql=strSql + "'" + shopIntro + "',";
strSql=strSql + "'" + shopper + "',";
strSql=strSql + "'" + realName + "',";
strSql=strSql + "'" + mainFields + "',";
strSql=strSql + "'" + telephone + "',";
strSql=strSql + "'" + createDate + "',";
strSql=strSql + "'" + sysRole + "',";
strSql=strSql + "'" + tag + "'";
strSql=strSql + ")"; System.out.println(strSql);
boolean isAdd = super.exeSqlUpdate(strSql);

return isAdd;
   }
---------------------------------------------------------------------
操作结果显示
注册失败,请稍后再试

解决方案 »

  1.   

    super.exeSqlUpdate(strSql); 这个返回的是什么?
    你再看看你的System.out.println(strSql); 打印出来的有错吗?
    贴上来看看?
      

  2.   

    打印出来的SQL没有错误!
    exeSqlUpdate(strSql)   返回一个BOOLEAN 类型的!public boolean exeSqlUpdate(String strSql)
    {
    try
    {
        stmt=dbConn.createStatement();
    stmt.executeUpdate(strSql);
    this.errNum=0;
    return true;            
    }
    catch(Exception ex)
    {

                this.errNum=-1;
                this.errDesc=ex.toString();
    return false;
    }
    finally
    {

    }
    }
      

  3.   

    stmt = dbConn.createStatement();
    stmt.executeUpdate(strSql);
    改成 
    stmt = conn.prepareStatement(sql);
    rs = stmt.executeQuery(sql);
    试一试
      

  4.   

    ...
    stmt=conn.prepareStatement(sql);
    rs=stmt.execute(sql);
    ...
    这个
      

  5.   

    检查你的数据库用户权限,和table。
    先登录把生成的sql复制过去执行一下看看。
    jsp上好像没错
      

  6.   

    在数据库里看一下你的sql,考出来单独执行一下,你可以通过数据库的DBA权限进去以后执行一些sql,查看当前或历史的执行的sql语句
      

  7.   

     运行最简单的jdbc代码有问题吗
      

  8.   

    super.exeSqlUpdate(strSql);
    把super去掉