关于ibatis 的使用 queryForObject

   最近做项目,用到ibatis ,,

 不要问我,为什么,因为我们项目经理要求的 ssi框架 不能用 注解

  在使用过程中 遇到一些问题,在这里解决一下:

   当我在一个xml的文件 用一个外键 获取另外一个值的时候 发生了这个

The error occurred in com/***/mapper/*******_SqlMap.xml.  
--- The error occurred while preparing the mapped statement for execution.  
--- Check the *************.selectByPrimaryKey.  
--- Cause: java.sql.SQLException: Invalid parameter object type.  Expected 'com.**.nun.**' but found 'java.math.BigDecimal'.
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
    at com.ibatis.sqlmap.engine.mapping.result.loader.ResultLoader.getResult(ResultLoader.java:77)
    at com.ibatis.sqlmap.engine.mapping.result.loader.EnhancedLazyResultLoader$EnhancedLazyResultLoaderImpl.loadObject(EnhancedLazyResultLoader.java:130)
    ... 9 more
Caused by: java.sql.SQLException: Invalid parameter object type.  Expected 'com.**.nun.**' but found 'java.math.BigDecimal'.
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.validateParameter(GeneralStatement.java:229)
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:151)
    ... 16 more
 
猜测一点 :ibatis queryForPbject("selectById",id);

传过去是的int 值,但是在后面操作中,ibatis 其实将其转化为一个  对象,在进行了操作

<select id="selectById" resultMap="aaResultMap" parameterClass="com.**.nun.**" >
    select
    <include refid="***.***_Column_List" />
    from*******
    where ID = #id#
  </select>

当在另外一个 xml文件中调用时

 <result column="**ID" property="*id" jdbcType="DECIMAL" select="******.selectById" />

 不能实现会上面的错

所以  以后还是用mybaties 吧,不要给自己挖坑了,谨此警示一下大家


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值