mybatis和ibatis的一点区别

1. dao.xml命名空间的区别

mybatis:<mapper namespace="com.jd.yys.treaty.dao.read.TreatyInfoRDao"></mapper>

命名空间:dao接口的名称

ibatis:<sqlMap namespace="CardWare"></sqlMap>

命名空间,自定义的标识,调用的时候:return (List<CardWare>) queryForList("CardWare.queryCardWare", query);


2. 注入的时候写法不同(分页,sqlserver)

mybatis : 

   WITH cte as (
				select *,row_number() over(order by UpdateTime asc) as pageIndex from TreatyInfo(nolock) where yn = 1 and rfid is not null
		)  select t2.*,t1.pageIndex
     	from cte t1
     	inner join treatyInfo(nolock) t2
     	on t1.id=t2.id
      		where pageIndex between (#{page}-1)*#{pageSize}+1 and #{pageSize}*#{page}
ibatis:

WITH cte as (
				select *,row_number() over(order by id asc) as pageIndex from TreatyInfo(nolock) where yn = 1  
		)  select t2.*,t1.pageIndex
     	from cte t1
     	inner join treatyInfo(nolock) t2
     	on t1.id=t2.id
      		where pageIndex between (#page#-1)*#pageSize#+1 and #pageSize#*#page#

3. 参数和返回值的区别

mybatis: 

<select id="queryTreatyInfo" parameterType="Map"  resultType="TreatyInfo" >
ibatis:

 <select id="queryCardWare" parameterClass="map"  resultClass="cardWare" >

4. ibatis异常分析

Cause: org.xml.sax.SAXParseException: Attribute "parameterType" must be declared for element type "select".
原因:我在ibatis的select中写了parameterType和resultType。
正确做法:ibatis中用的是parameterClass和resultClass
SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
原因:我在注入对象的时候,其中有一个字段是int类型,但是数据库中保存的NULL,我的类用的是int,所以注入的时候转化错误。
解决方案:把类的int类型写成Interger。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值