这是我的数据库bean的部分代码:
public class databean  
{
   private Connection conn = null;
   private ResultSet res = null;
   private PreparedStatement prepar = null;
  
    public boolean addModule(modulebean module)
   {
        boolean flag = false;
        
        String sql = "INSERT INTO Module"+"(moduleName,ownerId)"+"values(?,?)";
        try
        {
            this.prepar = conn.prepareStatement(sql);
            prepar.setString(1, module.getModuleName());
            prepar.setLong(2, module.getOwnerId());
                       
            int result = prepar.executeUpdate();  ····这中间moduleName是String类型,ownerId是Long,结果执行起来不报错,就是不出结果!如果??都是String类型的话,是可以Insert成功的。怎么回事呢?求达人帮忙!

解决方案 »

  1.   

    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]可选的功能未实现        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)        at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterBigint(JdbcOdbc.java:1225)        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setLong(JdbcOdbcPreparedStatement.java:592)        at fxj.databean.addModule(databean.java:198)        at org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
       ···················
    这是tomcat的显示,我用的acess数据库,不会是没有实现sun.jdbc.odbc.JdbcOdbcPreparedStatement.setLong方法吧···
      

  2.   

    String sql = "INSERT INTO Module(moduleName,ownerId)"+"value( '"+module.getModuleName()+"',"+module.getOwnerId()+")";
            try
                   
            {
                this.prepar = conn.prepareStatement(sql);
    ·····
      这样可以!
      

  3.   

    是不是,你的 module.getOwnerId() 提出来的不是Long型的数据
      

  4.   

    public long getModuleId()
        {
        return moduleId;
        }返回的是Long···
      

  5.   

    long是简单类型.
    new Long(module.getOwnerId());
      

  6.   

    因为是你用的JDBC driver未实现setLong方法
      

  7.   

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conn = DriverManager.getConnection("jdbc:odbc:DB");
    是这个jdbc-odbc桥,难道真的连这种简单方法都不实现?
      

  8.   

    setLong(int,long),小菜的意思是什么?
    Long tmp =new Long(module.getOwnerId());
     prepar.setLong(2, tmp);??这样不行的阿。