mybatis和ibatis的比较
2016-07-05 17:30
337 查看
1.以前用的parameterClass在mybatis中已经永不了了,mybatis里应该使用parameterType。另外resultMap里面也不能继续使用了改成了type
2.dynamic标签不能使用了,下面的配置在mybatis里是错的
3.数据类型的声明和ibatis有了很大的差别,ibatis可以像下面这样写
在mybatis的话一般是这样弄的
4.mybatis现在已经没有SqlMapClient了,使用的则是SqlSession.在原来的基础上加了像selectMap,selectList,selectOne这样的方法,使用更方便了
5.加了一个叫映射器的新东西,只需要写出接口而不需要实现类就能够操作数据如
在映射文件里要记得namespace写成接口的类全名,sql语句的id写成接口里的方法名就可以了
调用的时候就像下面
就这样就可以直接进行数据的操作了,的确智能了很多
5.需要注意的是spring3.0一下的版本并不支持mybatis,下面是官方文档的描述
从spring3之后mybatis已经可以和spring整合了,最值得高兴的是mybatis网站也提供了整合的用户指导,写的很具体直接就可以拿来用。还有一些特色的功能如直接批量插入数据,hibernate还是那死样子,在这里力挺mybatis。更多的东西大家去看开发文档,我就不多说了。
2.dynamic标签不能使用了,下面的配置在mybatis里是错的
<sql id="sqlwhere"> <dynamic> <isGreaterThan prepend="and" property="FPARENTID" compareValue="-1"> A.FPARENTID = #FPARENTID# </isGreaterThan> <isNotEmpty prepend="and" property="LOGINTOPIMAGE"> A.LOGINTOPIMAGE like #LOGINTOPIMAGE# </isNotEmpty> <isGreaterThan prepend="and" property="FID" compareValue="-1"> A.FID = #FID# </isGreaterThan> <isNotEmpty prepend="and" property="FNAME"> A.FNAME like #FNAME# </isNotEmpty> <isNotEmpty prepend="and" property="LOGINMIDDLEIMAGE"> A.LOGINMIDDLEIMAGE like #LOGINMIDDLEIMAGE# </isNotEmpty> <isNotEmpty prepend="and" property="VERSIONNUMBER"> A.VERSIONNUMBER like #VERSIONNUMBER# </isNotEmpty> <isNotEmpty prepend="and" property="MAJORTITLE"> A.MAJORTITLE like #MAJORTITLE# </isNotEmpty> <isNotEmpty prepend="and" property="LOGINTITLE"> A.LOGINTITLE like #LOGINTITLE# </isNotEmpty> <isNotEmpty prepend="and" property="MAJORMIDDLEIMAGE"> A.MAJORMIDDLEIMAGE like #MAJORMIDDLEIMAGE# </isNotEmpty> <isNotEmpty prepend="and" property="LOGINBOTTOMIMAGE"> A.LOGINBOTTOMIMAGE like #LOGINBOTTOMIMAGE# </isNotEmpty> <isNotEmpty prepend="and" property="MAJORTOPIMAGE"> A.MAJORTOPIMAGE like #MAJORTOPIMAGE# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.LOGO like #LOGO# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.ADDRESS like #ADDRESS# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.FAX like #FAX# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.PHONE like #PHONE# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.ZIP like #ZIP# </isNotEmpty> <isNotEmpty prepend="and" property="LOGO"> A.EMAIL like #EMAIL# </isNotEmpty> <isNotEmpty prepend="and" property="containIds"> A.FID NOT IN ($containIds$) </isNotEmpty> </dynamic> </sql>
3.数据类型的声明和ibatis有了很大的差别,ibatis可以像下面这样写
insert into M_HEALTHSPECIALYTYPE(FCODE,FCHARGE,FTYPECONTENT,FID,FMARK) values (#FCODE:VARCHAR2#,#FCHARGE:VARCHAR2#,#FTYPECONTENT:VARCHAR2#,#FID#,#FMARK:VARCHAR2#)
在mybatis的话一般是这样弄的
insert into M_HEALTHSPECIALYTYPE(FCODE,FCHARGE,FTYPECONTENT,FID,FMARK) values (#{FCODE,jdbcType=VARCHAR},#{FCHARGE,jdbcType=VARCHAR},#{FTYPECONTENT,jdbcType=VARCHAR},#{FID},#{FMARK,jdbcType=VARCHAR})
4.mybatis现在已经没有SqlMapClient了,使用的则是SqlSession.在原来的基础上加了像selectMap,selectList,selectOne这样的方法,使用更方便了
5.加了一个叫映射器的新东西,只需要写出接口而不需要实现类就能够操作数据如
import java.util.List; import org.lxh.vo.HealthspecialytypeInfo; public interface HealthMapper { public List<HealthspecialytypeInfo> getRecordByList(HealthspecialytypeInfo info); }
在映射文件里要记得namespace写成接口的类全名,sql语句的id写成接口里的方法名就可以了
<select id="getRecordByList" parameterType="org.lxh.vo.HealthspecialytypeInfo" resultMap="resultMap"> select * from M_HEALTHSPECIALYTYPE where FCODE in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select>
调用的时候就像下面
HealthMapper m=ses.getMapper(HealthMapper.class); List<HealthspecialytypeInfo> record=m.getRecordByList(h);
就这样就可以直接进行数据的操作了,的确智能了很多
5.需要注意的是spring3.0一下的版本并不支持mybatis,下面是官方文档的描述
从spring3之后mybatis已经可以和spring整合了,最值得高兴的是mybatis网站也提供了整合的用户指导,写的很具体直接就可以拿来用。还有一些特色的功能如直接批量插入数据,hibernate还是那死样子,在这里力挺mybatis。更多的东西大家去看开发文档,我就不多说了。
相关文章推荐
- Oracle:windows x64 Orcale12c安装
- xml传输缺少分号(XML5608 "应为分号。" )
- "activity和service通信"-三大方法之-使用Messenger(信使,信差)
- Mac OS原来自带了apache,基本用法总结
- 自定义ViewGroup时需要注意的细节点
- android动态测量控件
- Android画图
- Web系统大规模并发——电商秒杀与抢购
- linux静态IP配置和网关配置
- C# 简单的定时关机
- bug-android之app:mergeDebugResources
- 未将对象引用设置到对象实例(转)
- 将VS2010默认Unicode编码设置为ANSI编码
- 安装mxnet
- android 显示Gift图片
- Tabhost的用法
- 安卓命令学习
- 如何搭建DNS服务器(Dnsmasq的安装与配置)
- android用wifi进行adb调试
- 解释型语言 跟 编译型语言的区别