--------------------------------------------------------------------
root cause java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseStatement.execute(Ljava/lang/String;I)Z
 at testjsp.AddRecord.doGet(AddRecord.java:302)
 at testjsp.AddRecord.doPost(AddRecord.java:316)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853
---------------------------------------------------------------------
根据以上错误,我的理解是:
你调用的方法不鼓励,或者不合适,所以抛出了异常,在DataBase pilot中正常只能说明你的sql语句没有问题,并不能说明你的调用是正确的.
当然也可能是你的jdbc驱动太老的原因.
如果找不到问题,首先更换jdbc的驱动版本,不行的话,贴出你的写数据库代码,我帮你看下

解决方案 »

  1.   

    我用的方法很简单:Statement stmt...
    stmt.execute(sql);sql语句是insert into table(name,sex) values ('a','b')然后就有异常,而且奇怪的是try/catch居然抓不住。
      

  2.   

    好像是驱动的问题
    stmt.execute没有实体函数
      

  3.   

    已经可以插入记录了把 stmt.execute(strSql,Statement.RETURN_GENERATED_KEYS);
    改为 stmt.execute(strSql);就成功了,是不是jdbc驱动程序不支持Statement.RETURN_GENERATED_KEYS?但是还有个问题,我如何找到新生成的记录?原来我是在sql server里建立一个“自动编号”的字段,作为记录的唯一标识,想用Statement.RETURN_GENERATED_KEYS取得生成的这个标识,现在没有办法做到。有什么办法生成唯一标识?