Ibatis使用笔记
2009-07-04 11:06
141 查看
最近做的一个项目,ORM层采用的是Ibatis框架,关于这个框架和Hibernate框架的比较就不再赘述,主要是记录自己使用的一些心得。
1 用MAP向ibatis配置文件传参问题
通常我们通过DAO调用配置文件时,加如下参数parameterClass="java.util.Map",在Dao中,我们调用map.put(key,value)方法,如下:
或者也可以用parameterClass="某个对象类型",Ibatis配置文件直接可以获取对象get方法的各个字段。
但如果我们不用parameterClass="某个对象类型"的话,将该对象put到Map中,那对应的Ibatis配置文件用到的对象中的各个值,可以获取的到吗?答案是肯定的,用法是将map的key作为配置文件的前缀,同时不指名parameterClass,就OK了,代码如下:
2 ##参数和$$参数的区别
Ibatis的配置XML中,#parm#和$parm$ 是有区别的,例如:
前者会做类型检查,而后者不会。
1 用MAP向ibatis配置文件传参问题
通常我们通过DAO调用配置文件时,加如下参数parameterClass="java.util.Map",在Dao中,我们调用map.put(key,value)方法,如下:
Map parms = new HashMap(); parms.put("startDate", example.getDatatime()); parms.put("endDate", getLastDayOfMonth(example.getDatatime())); <select id="selectCountStatusByDate" resultClass="int" parameterClass="java.util.Map"> select count(*) from s_upload_log l where l.datatime between #startDate:VARCHAR# and #endDate:VARCHAR# </select>
或者也可以用parameterClass="某个对象类型",Ibatis配置文件直接可以获取对象get方法的各个字段。
但如果我们不用parameterClass="某个对象类型"的话,将该对象put到Map中,那对应的Ibatis配置文件用到的对象中的各个值,可以获取的到吗?答案是肯定的,用法是将map的key作为配置文件的前缀,同时不指名parameterClass,就OK了,代码如下:
SUploadLog record = new SUploadLog(); Map map = new HashMap(); map.put("upload", record); <update id="updateLogByTemplateId"> update S_UPLOAD_LOG <dynamic prepend="set"> <isNotNull prepend="," property="upload.sname"> SNAME = #upload.sname:VARCHAR# </isNotNull> <isNotNull prepend="," property="upload.status"> STATUS = #upload.status:CHAR# </isNotNull> </dynamic> where TEMPLATEID = #upload.templateid# and DATATIME=#upload.datatime# </update>
2 ##参数和$$参数的区别
Ibatis的配置XML中,#parm#和$parm$ 是有区别的,例如:
<select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu"> select * from S_FUNCTION where SPARENT=#id# </select> <select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu"> select * from S_FUNCTION where SPARENT=$id$ </select>
前者会做类型检查,而后者不会。
相关文章推荐
- ibatis 使用笔记
- ibatis学习笔记(四)>>>>>>>ibatis使用实例
- ibatIS学习笔记---Ibatis的基本使用方法
- ibatis中标签的使用笔记
- iBATIS插件使用笔记
- ibatis学习笔记(四)>>>>>>>ibatis使用实例
- php——学习笔记,数据类型和小例以及echo使用技巧
- 微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
- Apache Log4j 使用笔记
- Github使用学习笔记(一)
- 【Hibernate学习笔记-5】@Formula注解的使用
- git 在客户端的使用笔记
- Android开发笔记—Http通信的基础使用
- ros笔记:(6)使用rosed编辑ROS中的文件
- Qt 使用QPluginLoader 加载外部dll的方法笔记
- HTML5项目笔记3:使用Canvas设计离线系统的Logo
- Xcode控件使用笔记三:UIScrollView 查看大图、缩放、分页
- Hibernate表中外键使用(个人笔记)
- iOS开发笔记之NSFileManager的使用
- Java Web 学习笔记之八:嵌入式web服务器Jetty的基本使用