这个是我的ibatis配置文件 user.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap >
  <typeAlias type="com.pbc.evaluation.model.User" alias="user"/>
  <resultMap id="userdb" class="user" >
    <result column="id" property="id" jdbcType="INTEGER"  nullValue="0"/>
    <result column="u_code" property="ucode" jdbcType="CHARACTER"  nullValue="0"/>
    <result column="u_name" property="uname" jdbcType="CHARACTER" nullValue="0" />
    <result column="u_pswd" property="upswd" jdbcType="CHARACTER"  nullValue="0"/>
    <result column="u_depart" property="udepart" jdbcType="CHARACTER"  nullValue="0"/>
    <result column="u_actor" property="uactor" jdbcType="CHARACTER"  nullValue="0"/>
  </resultMap>
  
  
  <!-- 根据id获得用户对象 
    <select id="getUsersById" resultMap="userdb" >
     select * from Users where id=#value#
  </select> 
  -->
   <select id="getUsersById"   resultClass="com.pbc.evaluation.model.User">
     select  u_code as ucode   from Users where id=#value#
  </select> 
  
   <!-- 新增用户对象 -->
   <insert id="insertUsers" parameterClass="user">
       insert into Users (u_name,u_code,u_pswd,u_depart,u_actor) values (#uname#,#ucode#,#upswd#,#udepart#,#uactor#)
   </insert>
</sqlMap>执行读取的时候 报错误 ,两个getUsersById都不能运行 报错差不多,都是sqlmap问题,哪位前辈帮忙看看:
但是执行插入操作到时能插入数据。org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-99999];   
--- The error occurred in com/pbc/evaluation/model/database/user.xml.  
--- The error occurred while applying a result map.  
--- Check the getUsersById-AutoResultMap.  
--- The error happened while setting a property on the result object.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/LINUXSQL09017 by this version of JDBC driver; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/pbc/evaluation/model/database/user.xml.  
--- The error occurred while applying a result map.  
--- Check the getUsersById-AutoResultMap.  
--- The error happened while setting a property on the result object.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/LINUXSQL09017 by this version of JDBC driver
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-99999];   
--- The error occurred in com/pbc/evaluation/model/database/user.xml.  
--- The error occurred while applying a result map.  
--- Check the getUsersById-AutoResultMap.  
--- The error happened while setting a property on the result object.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/LINUXSQL09017 by this version of JDBC driver; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/pbc/evaluation/model/database/user.xml.  
--- The error occurred while applying a result map.  
--- Check the getUsersById-AutoResultMap.  
--- The error happened while setting a property on the result object.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/LINUXSQL09017 by this version of JDBC driver
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:271)
com.pbc.evaluation.dao.UserDaoImpl.getById(UserDaoImpl.java:17)
com.pbc.evaluation.service.UserServiceImpl.getById(UserServiceImpl.java:25)
com.pbc.evaluation.controller.UserController.save(UserController.java:107)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/pbc/evaluation/model/database/user.xml.  
--- The error occurred while applying a result map.  
--- Check the getUsersById-AutoResultMap.  
--- The error happened while setting a property on the result object.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/LINUXSQL09017 by this version of JDBC driver
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(SqlMapClientTemplate.java:273)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:271)
com.pbc.evaluation.dao.UserDaoImpl.getById(UserDaoImpl.java:17)
com.pbc.evaluation.service.UserServiceImpl.getById(UserServiceImpl.java:25)
com.pbc.evaluation.controller.UserController.save(UserController.java:107)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause 

解决方案 »

  1.   

    --- The error occurred in com/pbc/evaluation/model/database/user.xml.  
    --- The error occurred while applying a result map.  
    --- Check the getUsersById-AutoResultMap.  
    --- The error happened while setting a property on the result object.   说的很清楚 你user.xml.的getUsersById这个方法的返回结果集配置有问题
      

  2.   

    你getUsersById的时候参数类型没写应该是string
      

  3.   

    是啊 和数据库一样的啊  
     <!-- 根据id获得用户对象 
        <select id="getUsersById" resultMap="userdb" >
         select * from Users where id=#value#
      </select> 
      -->
       <select id="getUsersById"   resultClass="com.pbc.evaluation.model.User">
         select  u_code as ucode   from Users where id=#value#
      </select>这两个都能不行  到底哪里出问题了  getUsersById返回的是User对象,难道不行么
      

  4.   

    <select id="getUsersById" parameterClass="****"   resultClass="com.pbc.evaluation.model.User">
         select  u_code as ucode   from Users where id=#value#
      </select> [/b]
    以上的****用你的参数类型代进去。然后那个resultClass可以写成user。因为你在之前给它起了个别名了。有些默认的null值可以在java代码中控制。
      

  5.   

    是Ingteger类型  id是自增长的
      

  6.   

    试了啊  还是不行 同样的错误  用resultMap="userdb"还是报错   
      

  7.   

    这是我的user类  public class User implements java.io.Serializable { private static final long serialVersionUID = 8043904463323709596L;
    private Integer id;
    private String uname;
    private String ucode;
    private String upswd;
    private String udepart;
    private String uactor;
    /** default constructor */
    public User(Integer id,String ucode   , String uname, String upswd,String udepart ,String uactor) {
    this.id = id;
    this.uactor=uname;
    this.ucode=ucode;
    this.udepart=upswd;
    this.uname=udepart;
    this.upswd=uactor;
     
    }
     
    public User() {
    }

    public Integer getId() {
    return id;
    } public void setId(Integer id) {
    this.id = id;
    } public String getUname() {
    return uname;
    }
    public void setUname(String uname) {
    this.uname = uname;
    }
    public String getUcode() {
    return ucode;
    }
    public void setUcode(String ucode) {
    this.ucode = ucode;
    }
    public String getUpswd() {
    return upswd;
    }
    public void setUpswd(String upswd) {
    this.upswd = upswd;
    }
    public String getUdepart() {
    return udepart;
    }
    public void setUdepart(String udepart) {
    this.udepart = udepart;
    }
    public String getUactor() {
    return uactor;
    }
    public void setUactor(String uactor) {
    this.uactor = uactor;
    }
     
    }下面是dao层 
      public User getById(Integer id) {
            return (User)getSqlMapClientTemplate().queryForObject("getUsersById",id);
        }
      

  8.   

        <select id="getUsersById" resultMap="userdb" >
         select * from Users where id=#value#
      </select> 这条sql中有个参数value,但是你没有传入参数parameterClass,不知道你这value怎么取的<select id="getUsersById" resultMap="userdb" parameterClass="int">
    这样试试
      

  9.   

    <select id="getUsersById"   resultClass="string">
         select  u_code as ucode   from Users where id=#value#
      </select>
      

  10.   

      <select id="getUsersById" resultMap="userdb" >
      select * from Users where id=#value#
      </select>  
      
      <select id="getUsersById" resultClass="com.pbc.evaluation.model.User">
      select u_code as ucode from Users where id=#value#
      </select>   
    这两个都尝试了,无论是  parameterClass  resultClass 改成什么都不行啊 ,还是包同样的错误 ,到底哪里出问题了啊 数据能插入   spring2.5 ibatis2.3 
      

  11.   

      <resultMap id="userdb" class="user" >
        <result column="id" property="id"    nullValue=""/>
        <result column="u_code" property="ucode"    nullValue=""/>
        <result column="u_name" property="uname"   nullValue="" />
        <result column="u_pswd" property="upswd"    nullValue=""/>
        <result column="u_depart" property="udepart"  nullValue=""/>
        <result column="u_actor" property="uactor"  nullValue=""/>
      </resultMap>
       <select id="getUsersById" parameterClass="string"  resultClass="user">
          select id as id, u_code as ucode,u_name as uname,u_pswd as upswd,u_depart as udepart,u_actor as uactor  from Users where id=#value#
      </select> 
      我将配置部分改成这样了 还是报同样的错误,到底是什么原因啊  快疯了 好几天都没搞定
      

  12.   


       <select id="getUsersById"   parameterClass="java.lang.Long"  resultClass="userdb">
         select  u_code as ucode  from Users where id=#value#
      </select> 
      

  13.   

    找到错误原因是了 换了db2jcc的jar就好了  虽然我不知道为什么抱着个错误,唉!谢谢诸位了  我所有的分就是57分 全给你们了,虽然不多