ibatis初学
来源:互联网 发布:万国数据上海 福利待遇 编辑:程序博客网 时间:2024/05/29 02:09
最近在做一个项目,本来是零基础的(以前还没正式地做过),碰到一些只听说过但是没用过的技术:比如ibatis。ibatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQLMaps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。 相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。iBATIS需要开发人员自己来写sql语句,这可以增加了程序的灵活性,在一定程度上可以作为ORM的一种补充。程序设计人员应该结合自己的项目的实际情况,来选择使用不同的策略。iBATIS和Hibernate都做了映射,但iBATIS是把实体类和sql语句之间建立了映射关系,这种策略可以允许开发人员自己来写合适的sql语句,而Hibernate在实体类和数据库之间建立了映射关系,sql对于开发人员是不可见的,对于那些数据量非常大的应用,无法去优化sql语句。所以在实际应用中,应该根据不同的应用场景,来选择适合自己的框架.<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig><settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /><typeHandler javaType="java.lang.String"callback="..." /> 自己写<sqlMap resource="config/ibatis/oracle/Fxsc.xml" /><sqlMap resource="config/ibatis/oracle/Zrzj.xml" /></sqlMapConfig>
以上是ibatis的配置信息,就是将xml(也就是写sql语句的文件)配置到SqlMapConfig里,类似初始化。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="Fxsc"><typeAlias alias="fxsc" type="com.model.Fxsc" /><resultMap id="getFxscResult" class="fxsc"><result property="fxdlid" column="fxdlid" /><result property="fxscid" column="fxscid" /> <result property="fxscname" column="fxscname" /><result property="fxsccontent" column="fxsccontent" /> </resultMap> //resultMap是select语句查询时返回的结果集,而这些结果集均要写入com.model.Fxsc(里面的内容类似javabean,属性,get(),set())<select id="getFxsc" resultMap="getFxscResult" parameterClass="map"> //"getFxsc"这个是dao.impl里定义的
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig><settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /><typeHandler javaType="java.lang.String"callback="..." /> 自己写<sqlMap resource="config/ibatis/oracle/Fxsc.xml" /><sqlMap resource="config/ibatis/oracle/Zrzj.xml" /></sqlMapConfig>
以上是ibatis的配置信息,就是将xml(也就是写sql语句的文件)配置到SqlMapConfig里,类似初始化。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="Fxsc"><typeAlias alias="fxsc" type="com.model.Fxsc" /><resultMap id="getFxscResult" class="fxsc"><result property="fxdlid" column="fxdlid" /><result property="fxscid" column="fxscid" /> <result property="fxscname" column="fxscname" /><result property="fxsccontent" column="fxsccontent" /> </resultMap> //resultMap是select语句查询时返回的结果集,而这些结果集均要写入com.model.Fxsc(里面的内容类似javabean,属性,get(),set())<select id="getFxsc" resultMap="getFxscResult" parameterClass="map"> //"getFxsc"这个是dao.impl里定义的
/*@Overridepublic List findAll(Map map) {// TODO Auto-generated method stub return queryForList("getFxsc", map);}*/以下就是自己写的sql语句了。
<![CDATA[ select distinct t.fxscid, t.fxdlid , t.fxscname, t.fxsccontent from xzfxsc t where 1=1 ]]><dynamic prepend="and"> <isNotEmpty prepend="and" property="fxscid">t.fxscid=#fxscid# </isNotEmpty></dynamic>/*dynamic是动态查询用的,如果fxscid不是空的,后面就会and条件加上,参数是map传入的,也就是条件查询时需要用到Map<String, Object> aa = new HashMap<String, Object>();aa.put("fxdlid", id);*/ </select> <insert id="insertFxsc" parameterClass="fxsc"> //插入,注意就是不管下面的参数有没有,表中的字段全部都要写上 insert into xzfxsc(fxscid,fxdlid,fxscname,fxsccontent) values(#fxscid#,#fxdlid#,#fxscname#,#fxsccontent#)</insert> <update id="updateFxsc" parameterClass="fxsc">//更新update XZFXSC setfxdlid=#fxdlid#,fxscname=#fxscname#,fxsccontent=#fxsccontent#where fxscid = #fxscid# </update> <delete id="deleteFxsc" parameterClass="fxsc">//删除delete fromXZFXSCwhere FXSCID = #fxscid#</delete> </sqlMap>再看controlpublic Object open(String id,String gwmc) throws Exception{Map<String, Object> aa = new HashMap<String, Object>();aa.put("fxdlid", id);aa.put("fxscname", gwmc);List<Fxsc> fxsc = (List<Fxsc>) fxscService.getFxscList(aa); Grid json = Util.ListToGrid(fxsc,"fxscid,fxscname,fxsccontent");//这是前台jsp页面传来的有几列,这些也都是在model里的,将其//组织成json格式然后输出System.out.println(fr.zenexity.json.JSON.toJSON(json));return json;}
- 初学ibatis
- 初学ibatis
- ibatis 初学
- ibatis初学
- 初学Ibatis
- 初学ibatis过程
- ibatis 初学小结
- 初学ibatis 学习笔记一
- 初学springmvc 3 + ibatis框架
- 初学ibatis时容易犯的错误
- 初学ibatis,总结遇到的问题(一)
- ibatis
- iBatis
- ibatis
- iBatis
- ibatis
- ibatis
- IBATIS
- 再谈OpenCV数据结构Mat详解
- 实现将datetable的数据添加到数据库表中
- nginx中slab实现
- Ubuntu 重置系统时间
- Ubuntu下配置samba实现文件夹共享
- ibatis初学
- 使用 Apache Hadoop 和 Dojo 降低商业智能成本,
- AutoMapper中针对指定的属性定制转换规则
- dddddd
- Android创建桌面快捷方式并像启动Activity传递参数
- 另一种root方法,Android boot.img破解
- 百度2012-笔试面试题目汇总
- 【框架-MFC】CDialog(chenlu-1):在指定控件(例:CStatic)位置绘图
- 【ci框架】codeigniter框架中类名与文件名不相同,如何加载的呢?