ibatis开发指南

所需积分/C币:23 2013-09-04 10:21:41 983KB PDF
2
收藏 收藏
举报

ibatis开发指南,让你可以轻松的学会ibatis的开发实例代码。
开发抬南 iBATIS SQL Maps Page 3 of 62 Map类型的 Result 复杂类型属性(即自定义类型的属性 32 避免N+1 Select(1:1)… “··**+ 延迟加载VS联合查询(1:1) 复杂类型集合的属性. 34 避免N+1 Select(1:M和M:N) 34 组合键值或多个复杂参数属性 支持 Parameter Map和 Result map的数据类型 .36 缓存 Mapped Statement结果集 136 只读VS可读写 Serializable可读写缓存… 缓存类型 功态 Mapped Statement 二元条件元素 42 元条件元素. 4 其他元素 简单的动态SQL元素 44 使用 SQL Map APi编程.…… ∴……46 配置 SQL Map 46 事务处理. 自动的事务处理 …47 全局(分布式)事务 48 批处坦 用 SqlmapClient执行SQL语句.… 代码例子 例子1:执行 update(in 例子2:查询成对象( select) 52 例子3:用预赋值的结果对象查询成对象( select 例子4:查询成对象List( select)…..52 例子5:自动提交 例子6:用结果集边界查询成对象List( select 例子7:用 Rowhandler执行查询( select) 例子8:查询成 Paginated list( select)… 53 例子9:查询成Map( select) 53 月 Jakarta Commons Logging记录 SQL Map日志 配置日志服务. 54 Java bean简易教程… .56 Resources (com. ibatis. common. resource. * 58 SimpleData Source(com. ibatis. common jdbc. *) ScriptRunncr(com ibatis. common jdbC. 62 http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Page 4 of 62 简介 使用S①LMap,能够大大减少访问关系数据库的代码。 SQL Map使用简单的XML配 置文件将 Java bean怏射成SQL语句,对比其他的数握斥持续层和ORM框架(如JO的 实堄, Hibernate等), SQL Map最大的优点在丁它简单易学。要使用 SQL Map,只要熟悉 Jaya bean,XML和SQL,就能使您充分发挥SL语句的能力。 关于本文 本文讨论了 IBATIS SQLⅥap最重要的特性。本文中没有提及的其他特性,可能以后 不再支持或不久将会修改,并且修改时不作通告,因此最好不要使用它们。木文将随着 iBatis SQL Map的修改而变吏。如果您发现其中的错误,或是觉得某些地方难以理解,请发 email 至clintonbegin@ibatis.com。 本文是《 (iBatis sQL Maps Developer Guide》的中文版,仅供读者参考,最权威的应以 Clinton begin的官方文档为准。如果中文翻译有锖误,请通知泽者( email: tole@2 Icn con, Bloghttp://starrynight.blogdriver.com/) http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Page 5 of 62 sQL Maps(com.ibatis sqlmap. ") SQL Map的概念 SQL Map aPi计开发人员可以轻易地将 Java bean映射成 PreparedStatement的输入参数 和 Resultset结果集。开发S①LMap的想法很简单:提供一个简洁的架构,能够用20%的代 码实现80%JDBC的功能。 SQL Map如何工作? SQL Map提供了一个简洁的框架,使用简单的ⅩML描述文件将 Java bean,Map实现 和基本数据类型的包装类( String, Integer等)映射成JDBC的 Prcparcdstatcmcnt,以下流 程描述了 SQL Maps的高层生命周期: 将一个对象作为参数(对象可以是 Java bean,Map实现和基本类型的包装类),参数对 象将为SQL修改语句和查询语句设定参数值。 1)执行 mapped statement。这是 SQL Maps最重要的步骤。 SQL Map框架将创建个 Preparedstatement实例,用参数对象为 PreparedStatement实例设定参数,执行 Preparedstatement并从 Resultset中创建结果对象。 2)执行SQL的史新数据语句时,返回受影响的数据行数。执行查询语句时,将返回 一个结果对象或对象的集合。和参数对象一样,结果对象可以是 Java bean,Map 实现和基本数据类型的包装类。 下图描述了以上的执行流程。 http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Page 6 of 62 Parameter Object Result object (Input) sqlMap SqIMapC。 nig. xm SqlMap (Output) xml xml JavaBean Java Bean SQL Map M Mapped Mapped Mapped M (HashMap Statement Statement Statement HashMap TreeMap,. TreeMap . Mapped Mapped Mapped Statement Statement Statement “ Primitive u Primitive (Integer Integer, String,,,) Mapped Mapped Mapped string,,,) Statement Statement Statement XML JDBC 安装 SQL Maps 安装 SQL Maps很简单,只要把相关的JAR文件复制到类路径下即可。类路径或者是 JVM启动是指定的类路径(java命令参数),或者是Web应用中的wEB-NF/i目录。Java 类路径的详尽讨论超出了木文的范围,如果您是Java的初学者,请参考以卜的资源: http://java.sun.com/j2se/1.4/docs/tooldocs/win32/classpath.html http:/java.sun.com/j2se/1.4.2/docs/api/java/lang/classloader.html http://java.sun.com/j2se/1.4.2/do 安装 iBatis需要在类路径下放置以下JAR文件 文件名 描述 是否必需 lbatis-common jar IBATIS公用的工具类 ibatis-sqlmap. i r IBATIS SQL Maps框架 ibatis-dao jar IBATIS DAC框架 是是否 JAR文件和依赖性 如果·个框架依赖于太多的JAR文件,就很难与其他的应用和框架集成。 IBATIS2.0 的一个主要的关注点是管理并降低JAR文件的依赖性。因此,如果您用的是JDK1.4, IBATIS http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Pagc 7 of 62 仅仅依赖于 Jakarta Commons Logging框架。可选的JAR文什放在发布版的/ lib/optional I录 下。它们根据功能来分类。下面列表总结了何时需要使用可选JAR类库。 描述 何时使用 目录 1.4以前JDK版本支持 如果您使用的JDK版本低于/ lib/optional/jdbc 4,并且您的应用服务器不 /ib/optional/jta 提供这些JAR文件,您将需/ ib/optional/xml 要这些可选的JAR文件 IBATIS的向后兼容 如果您使用口的 BATIS(1x)ib/ optional/ compatibility DAO框架,或旧的 SQL Maps (1.x) 运行时字节码增强 如果您需要使用 CGLIB2.0字ib/ optional/enhancement 芍码增强来提高 lazy loading 和 rellection的性能 DataSource实现 如果您使用 akarta DBCP连/ ib/optional/dbcp 分布式缓存 如果您使用 OSCache来支持 lib/optional/caching 集中或分布式缓存 Log4J日志 如您需要使用Iog4J/ Aib/optional/logging 从1x版本升级 是否应该升级 判断您是否需要升级的最好办法是尝试它。下面是几种升级的方法。 1.版木2.0儿乎完全保持和1x版木的向后兼容,因此某些情况下只需用新的JAR文 件替代旧的即可。这个升级方法带来的好处最少,但最简单。您无需修改XML文 件或Java代码,但会存在某些不兼容的问题。 2.第二种方法是把1x的XML文件转换成20规范,但仍使用1.x的 Java aPI。除了 XML映射文件存在着细微的不兼容之处外,这是个安全的方法。 SQL Map框架包 括了用来转换XML映射文件的 ANT Task(参见下节)。 3.第三种方法是转换XML文件(和第二种方法相同)和Java代码。因为没有转换 Java代码的工具,必须手工进行。 4.第四种方法是不必升级。如果您升级有困难,可以让应用继续使用1.x版本。让旧 应用继续使用1.x版,在新应用中使用20版是个不错的主意。 转换XML配置文件(从1x到20) 框架的2.0版本包含了一个可以在ANI构建环境中使用的XML文件转换器。虽然转换 http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Page 8 of 62 XML配置文件是可选的,但将1x的配置文件转换成20仍然是个好⊥意。你几乎不会遇到 不兼容的文件,并且还可以使用20版本新的特性(即使您继续使用1,x的 Java aPI)。 XML配置文件转换器在 build. xml文件中的例子如下 <taskdef name="convertsqIMaps classname="com ibatis db. sqImap upgrade ConvertTask class pathref="classpath <target name="convert> convertsq Maps todir= D: /target Directory/overwrite="true"> <fileset dir="D/source Directory/ <include name="xx/maps/*. xml/> </fileset> </convertsqIMaps> </target> 就像您看到的一样,它和Ant的 copy task很相似。事实上它就是Ant的 copy task类的 了类,因此您可以用这个task完成任何 copy task的功能(详绀信息请参考Ant的 Copy task 文档) 使用新的JAR文件 要升级到2.0,最好删除 iBatis原有旧的JAR文件及其依赖JAR类库,并用新的JAR 文件替代。但要主要不要删除其他组件或框架还需要的文件。请参考上节关于JAR类库及 其依赖性的讨论。 下表总结了旧文件及其相应的新文件。 旧文件 新文件 ibatis-db jar ibatis- common.jar(必需) 1.2.9b以后的版木,这个文件被分拆成一下3 ibatis- sqlmap. jar(必需) 个文件 ibatis-dao jar(可选) 1bat1s-commonJar batis-da LO. Jar ibatis-sqlmap jar commonS-logging.jar commons-logging-1-0-3ar(必需) commons-logging-apl jar commons-collection-2-1iar(可选) commons-collection jar commons-dbcp-1-1jar(可选) commons-dbcp. jar commons-pool-1-1Jjar(可选) commons-pool. jar oscache-2-0- Ijar(可选) oScache.ar jta-1-0-1ajar(可选) ]ta.jar jdbc2_0- stdext jar(可选) dbc2 0-stdext jar xerceslmpl-2-4-0.jar(可选) xercesImpljar xmlParserAPIs240ar(可选) XmlParserAPIsjar xaan-2-5-2jar(可近) http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Pagc 9 of 62 Jdom.jar log4-1.2.8Jar(可选) cglb-ful-2-0-rc2jar(可选) 本文余下部分将个如何使的 SOL Maps框架 http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译 开发抬南 iBATIS SQL Maps Page 10 of 62 SQL Map XML配置文件 SQL Map使用XML配置文件统一配置不同的属性,包括 Data Source的详细配置信息, SQL Map和其他可选属性,如线稈管理等。以下是 SQL Map配置文件的一个例子: Slap config. xml <?xml version=1."encoding="UTF-8?> ≤! DOCTYPE sqIMap Config PUBLIC"//iBATIS. com//DTD SQL Map Config 2.0/EN http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <l-- Always ensure to use the correct XMl header as above!--> <sqIMapConfig> <l-- The properties(name=value)in the file specified here can be used placeholders in this config file(e.g. "S(driver]". The file is relative to the classpath and is completely optional.--> <properties resource="examples/sqlmap/maps/sqlMapConfigExample properties"/> <!- These settings control SqIMapclient configuration details, primarily to do with transaction management. They are all optional (more detail later in this document).--> <settings cachemodels= true enhancement Enabled= true lazy Loading enabled=true max Requests=32 maxsessions=10 maxTransactions=5 use StatementNamespaces="false <l-- Type aliases allow you to use a shorter name for long fully qualified class names.--> <type Alias alias="order" type="testdomain Orderi> <- Configure a datasource to use with this sQL Map using simple Data Source Notice the use of the properties from the above resource -- <transactionManager type="JDBC> <data Source type=SIMPLE> <property name="JDBC Driver"value="S(driver//> property name=" JdBC. connectionUrL value= murlIs <property name="JDBC Username"value="S(username]"/> <property name="JDBC Password"value="$ password]/> <property name="JDBC. DefaultAuto Commit value="true"/> <property name="Pool. MaximumActive Connections"value=107> http://www.ibatis.com ClintonBegin著刘涛(tole@2Ien.com)译

...展开详情
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

  • 脉脉勋章

  • 分享宗师

关注 私信
上传资源赚钱or赚积分
最新推荐
ibatis开发指南 23积分/C币 立即下载
1/0