mybatis与spring的整合配置说明.docx_第1页
mybatis与spring的整合配置说明.docx_第2页
mybatis与spring的整合配置说明.docx_第3页
mybatis与spring的整合配置说明.docx_第4页
mybatis与spring的整合配置说明.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

mybatis是ibatis的升级版,spring也有自带mybatis的orm。所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。下面介绍3中方式1,只是用mybatis3。2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory )。3,使用ibatis2.3+spring(使用spring自带的ibatis)spring的orm包中只有ibatis,没有mybatis。而mybatis和ibatis还是有些区别的,比如配置文件属性不同。第一种方式(只使用mybatis):1)jar包:cglib-2.2.jarasm-3.1.jarmysql-connector-java-3.1.13.jarmybatis-3.0.5.jarjunit.jar2)mybatis配置文件:htmlview plaincopy1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 40. 41. !-42. 43. 44. 45. -46. 54. 55. 56. 57. 58. 59. !-60. 默认连接事务隔离级别61. 62. -63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. !-99. 100. 101. -102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 其中属性是数据源环境配置,可以配置多个数据源配置。每个属性代表一种配置方式。加载事务配置 和数据源配置。 有两种配置方式,分别是JDBC和MANAGED,详细说明见配置注释。 有三种配置方式,分别是UNPOOLED、POOLED、JNDI,详细说明见配置注释。定义别名,使用指定的别名来定义。注:关于JNDI的配置,见tomcat的几种JNDI配置方法3)mybatis的sql映射配置文件:htmlview plaincopy1. 2. 4. 5. 6. 7. 18. 19. !-默认不开启二级缓存,开启缓存20. eviction:缓存策略eviction=LRU、FIFO、SOFT、WEAK(默认LRU)21. 1)LRU:最近最少使用的:移除最长时间不被使用的对象22. 2)FIFO:先进先出:按对象进入缓存的顺序来移除它们。23. 3)SOFT:软引用:移除基于垃圾回收器状态和软引用规则的对象。24. 4)WEAK:弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。25. flushInterval:刷新间隔)可以被设置为任意的正整数,而且它们代表一个合理的毫秒形式的时间段。26. 默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。27. size:引用数目可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024。28. readOnly:属性可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。29. 这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是false。30. -31. 使用自定义缓存32. 33. 34. 35. type属性指定的类必须实现org.mybatis.cache.Cache接口36. -37. 引用另外的缓存38. -39. 40. 41. 55. 56. 57. 58. select*fromtableswhereURL_ID=#id59. 60. 61. 62. select*fromtableswhereURL_ID=#urlIdandURL=#url63. 64. 65. 68. URL_IDasurlId,url,moduleId,state,mark69. 70. select71. fromtableswhereURL_ID=#id72. 73. 74. 75. 76. !-77. resultMap元素:78. 1)constructor:类在实例化时,用来注入结果到构造方法中79. a)idArg:ID参数;标记结果作为ID可以帮助提高整体效能80. b)arg:注入到构造方法的一个普通结果81. 2)id:一个ID结果;标记结果作为ID可以帮助提高整体效能82. 3)result:注入到字段或JavaBean属性的普通结果83. 4)association:一个复杂的类型关联;许多结果将包成这种类型84. 5)collection:复杂类型的集85. 6)discriminator:使用结果值来决定使用哪个结果映射86. a)case:基于某些值的结果映射87. -88. resultMap下id、result元素:89. 1)property:映射到列结果的字段或属性90. 2)column:从数据库中得到的列名,或者是列名的重命名标签。这也是通常和会传递给resultSet.getString(columnName)方法参数中相同的字符串。91. 3)javaType:一个Java类的完全限定名,或一个类型别名(参加上面内建类型别名的列表)。如果你映射到一个JavaBean,MyBatis通常可以断定类型。92. 然而,如果你映射到的是HashMap,那么你应该明确地指定javaType来保证所需的行为。93. 4)jdbcType:在这个表格之后的所支持的JDBC类型列表中的类型。JDBC类型是仅仅需要对插入,更新和删除操作可能为空的列进行处理。94. 这是JDBC的需要,而不是MyBatis的。如果你直接使用JDBC编程,你需要指定这个类型-但仅仅对可能为空的值。95. 5)typeHandler:。使用这个属性,你可以覆盖默认的类型处理器。这个属性值是类的完全限定名或者是一个类型处理器的实现,或者是类型别名。96. resultMap下constructor元素:将查询到的对象映射到javabean时,如果javabean的构造函数有参数,则可以使用该元素来指定97. resultMap下association元素:关联,比如查询博客和该博客的用户,通过博客关联用户,association里面就是用户属性。98. resultMap下collection元素:集合,一个博客下有很多文章,collection就是存放文章的集合属性。99. resultMap下discriminator元素:鉴别器,有时一个单独的数据库查询也许返回很多不同(但是希望有些关联)数据类型的结果集。100. 鉴别器元素就是被设计来处理这个情况的,还有包括类的继承层次结构。鉴别器非常容易理解,因为它的表现很像Java语言中的switch语句。101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. -132. 133. 139. 140. 146. 147. SELECTFLOOR(1+(RAND()*1000000);148. 149. insertintotablevalues(xx,xx);150. 151. 152. 153. 154. 155. 4)测试方法:javaview plaincopy1. publicvoidtestSelect()2. 3. try4. Readerreader=Resources.getResourceAsReader(mybatis-config-mappings.xml);5. SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(reader,development1);6. SqlSessionsession=sqlSessionFactory.openSession();7. PageAccessURLpageAccessURL=(PageAccessURL)session.selectOne(selectPageAccessURL2,70001);8. /9. /PageAccessURLpage=newPageAccessURL();10. /page.setUrlId(70001);11. /page.setUrl(warrantAndCbbcInfo.jsp);12. /PageAccessURLpageAccessURL=(PageAccessURL)session.selectOne(selectPageAccessURLByClass,page);13. 14. session.close();15. reader.close();16. System.out.println(pageAccessURL.getUrl();17. catch(IOExceptione)18. System.out.println(e);19. 20. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,development1); 后面的development1是前面讲的数据源配置方式之一。如果要测试jndi的,则要通过容器加载后进行。第二种方式(mybatis3.0+spring3.0,spring自带的orm中,只有ibatis的,没有mybatis,所以使用mybatis3和spring整合的话只能用SqlSessionFactory 了);1)jar包:mybatis-3.0.5.jarmysql-connector-java-3.1.13.jarcglib-2.2.jarasm-3.1.jaraopalliance-1.0.jarcommons-logging-1.1.1.jarhsqldb-0.jarjstl-1.2.jarlog4j-1.2.16.jarmybatis-spring-1.0.1.jarspring-aop-3.0.5.RELEASE.jarspring-asm-3.0.5.RELEASE.jarspring-beans-3.0.5.RELEASE.jarspring-context-3.0.5.RELEASE.jarspring-core-3.0.5.RELEASE.jarspring-expression-3.0.5.RELEASE.jarspring-jdbc-3.0.5.RELEASE.jarspring-tx-3.0.5.RELEASE.jarspring-web-3.0.5.RELEASE.jarstripes-1.5.6.jarcommons-dbcp-1.2.2.jarcommons-pool-1.3.jarjunit.jar2)spring配置文件:applicationContext.xmlhtmlview plaincopy1. 2. 3. 4. 5. 6. applicat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论