MyBatis的Mapper文件配置.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MyBatis的Mapper文件配置详解精要

MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。 SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 配置给定命名空间的缓存。 cache-ref – 从其他命名空间引用缓存配置。 resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。 parameterMap – 已经被废弃了!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除。这里不会记录。 sql – 可以重用的 SQL 块,也可以被其他语句引用。 insert – 映射插入语句 update – 映射更新语句 delete – 映射删除语句 select – 映射查询语句 下一部分将从语句本身开始来描述每个元素的细节。 select 查询语句是使用 MyBatis 时最常用的元素之一。直到你从数据库取出数据时才会发现将数据存在数据库中是多么的有价值, 所以许多应用程序查询要比更改数据多的多。对于每次插入,更新或删除,那也会有很多的查询。这是 MyBatis 的一个基本原则,也是将重心和努力放到查询和结果映射的原因。对简单类别的查询元素是非常简单的。比如: select id=selectPerson parameterType=int resultType=hashmap SELECT * FROM PERSON WHERE ID = #{id}/select 这个语句被称作 selectPerson, 使用一个 int (或 Integer) 类型的参数, 并返回一个 HashMap 类型的对象,其中的键是列名,值是列对应的值。 注意参数注释: #{id} 这就告诉 MyBatis 创建一个预处理语句参数。使用 JDBC, 这样的一个参数在 SQL 中会由一个“?”来标识,并被传递到一个新的预处理语句中,就像这样: // Similar JDBC code, NOT MyBatis… String selectPerson = SELECT * FROM PERSON WHERE ID=?; PreparedStatement ps = conn.prepareStatement(selectPerson); ps.setInt(1,id); 当然, 这需要很多单独的 JDBC 的代码来提取结果并将它们映射到对象实例中, 这就是 MyBatis 节省你时间的地方。我们需要深入了解参数和结果映射。那些细节部分我们下面来了解。 select 元素有很多属性允许你配置,来决定每条语句的作用细节。 select id=selectPerson parameterType=int parameterMap=deprecated resultType=hashmap resultMap=personResultMap flushCache=false useCache=true timeout=10000 fetchSize=256 statementType=PREPARED resultSetType=FORWARD_ONLY Select Attributes 属性描述id在命名空间中唯一的标识符,可以被用来引用这条语句。parameterType将会传入这条语句的参数类的完全限定名或别名。parameterMap这是引用外部 parameterMap 的已经被废弃的方法。使用内联参数映射和 parameterType 属性。resultType从这条语句中返回的期望类型的类的完全限定名或别名。注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType 或 resultMap,但不能同时使用。resultMap命名引用外部的 resultMap。返回 map 是 MyBatis 最具力量的特性, 对其有一个很好的理解的话, 许多复杂映射的情形就能被解决了。使用 resultMap 或 resultType,但不能同时使用。flushCache将其设置为 true,不论语句什么时候被带哦用,都会导致缓存被清空。默认值:false。useCache将其设置为 true, 将会导致本条语句的结果被缓存。默认值: true。timeout这个设置驱动程序等待数据库返回请求结果,并抛出异常时间的最大等待值。默认不设置(驱动自行处理)fe

文档评论(0)

1520520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档