mybatis与spring的整合配置说明.docx
- 文档编号:7931508
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:23
- 大小:30.12KB
mybatis与spring的整合配置说明.docx
《mybatis与spring的整合配置说明.docx》由会员分享,可在线阅读,更多相关《mybatis与spring的整合配置说明.docx(23页珍藏版)》请在冰豆网上搜索。
mybatis与spring的整合配置说明
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.jar
asm-3.1.jar
mysql-connector-java-3.1.13.jar
mybatis-3.0.5.jar
junit.jar
2)mybatis配置文件:
[html] viewplaincopy
1.
xml version="1.0" encoding="UTF-8" ?
>
DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:
//mybatis.org/dtd/mybatis-3-config.dtd">
2.
3.
-- 参数设置 -->
4.
5.
-- 这个配置使全局的映射器启用或禁用缓存 -->
6.
7.
-- 全局启用或禁用延迟加载。
当禁用时,所有关联对象都会即时加载 -->
8.
9.
-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。
否则,每种属性将会按需要加载 -->
10.
11.
-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动) -->
12.
13.
-- 使用列标签代替列名。
不同的驱动在这方便表现不同。
参考驱动文档或充分测试两种方法来决定所使用的驱动 -->
14.
15.
-- 允许JDBC支持生成的键。
需要适合的驱动。
如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby) -->
16.
17.
-- 指定MyBatis如何自动映射列到字段/属性。
PARTIAL只会自动映射简单,没有嵌套的结果。
FULL会自动映射任意复杂的结果(嵌套的或其他情况) -->
18.
19.
-- 配置默认的执行器。
SIMPLE执行器没有什么特别之处。
REUSE执行器重用预处理语句。
BATCH执行器重用语句和批量更新 -->
20.
21.
-- 设置超时时间,它决定驱动等待一个数据库响应的时间 -->
22.
23.
24.
25.
-- 别名定义 -->
26.
27.
28.
29.
30.
31.
-- 环境配置1,每个SqlSessionFactory对应一个环境 -->
32.
33.
--
34. 事务配置 type= JDBC、MANAGED
35. 1.JDBC:
这个配置直接简单使用了JDBC的提交和回滚设置。
它依赖于从数据源得到的连接来管理事务范围。
36. 2.MANAGED:
这个配置几乎没做什么。
它从来不提交或回滚一个连接。
而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。
37. 默认情况下它会关闭连接。
然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false
38.
39. -->
40.
41.
--
42.
43.
44.
45. -->
46.
--
47. 数据源类型:
type = UNPOOLED、POOLED、JNDI
48. 1.UNPOOLED:
这个数据源的实现是每次被请求时简单打开和关闭连接。
它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。
49. 不同的数据库对这个的表现也是不一样的,所以对某些数据库来说配置数据源并不重要,这个配置也是闲置的
50. 2.POOLED:
这是JDBC连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。
51. 这是一种当前Web应用程序用来快速响应请求很流行的方法。
52. 3.JNDI:
这个数据源的实现是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用
53. -->
54.
55.
56. mysql: //localhost: 3306/appdb"/> 57. 58. 59. -- 60. 默认连接事务隔离级别 61. 62. --> 63. 64. 65. 66. 67. -- 环境配置2 --> 68. 69. 70. 71. 72. mysql: //localhost: 3306/appdb"/> 73. 74. 75. -- 在任意时间存在的活动(也就是正在使用)连接的数量 --> 76. 77. -- 任意时间存在的空闲连接数 --> 78. 79. -- 在被强制返回之前,池中连接被检查的时间 --> 80. 81. -- 这是给连接池一个打印日志状态机会的低层次设置,还有重新尝试获得连接,这些情况下往往需要很长时间(为了避免连接池没有配置时静默失败) --> 82. 83. -- 发送到数据的侦测查询,用来验证连接是否正常工作,并且准备接受请求。 --> 84. 85. -- 这是开启或禁用侦测查询。 如果开启,你必须用一个合法的SQL语句(最好是很快速的)设置poolPingQuery属性 --> 86. 87. -- 这是用来配置poolPingQuery多次时间被用一次。 这可以被设置匹配标准的数据库连接超时时间,来避免不必要的侦测 --> 88. 89. 90. 91. 92. -- 环境配置3 --> 93. 94. 95. 96. comp/env/jndi/mybatis"/> 97. 98. -- 99. 100. 101. --> 102. 103. 104. 105. 106. 107. -- 映射文件,存放sql语句的配置文件 --> 108. 109. 110. 111. 112. 其中 每个 加载事务配置 注: 关于JNDI的配置,见tomcat的几种JNDI配置方法 3)mybatis的sql映射配置文件: [html] viewplaincopy 1. xml version="1.0" encoding="UTF-8" ? > 2. DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3."http: //mybatis.org/dtd/mybatis-3-mapper.dtd"> 4. 5. 6. 7. -- 8. cache - 配置给定命名空间的缓存。 9. cache-ref – 从其他命名空间引用缓存配置。 10. resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。 11. parameterMap – 已经被废弃了! 老式风格的参数映射。 内联参数是首选,这个元素可能在将来被移除。 这里不会记录。 12. sql – 可以重用的SQL块,也可以被其他语句引用。 13. insert – 映射插入语句 14. update – 映射更新语句 15. delete – 映射删除语句 16. select – 映射查询语句 17. --> 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. -- 42. select元素: 43. 1)parameterType: 参数类型 44. 2)resultType: 从这条语句中返回的期望类型的类的完全限定名或别名。 45. 注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。 使用resultType或resultMap,但不能同时使用。 46. 3)resultMap: 命名引用外部的resultMap。 返回map是MyBatis最具力量的特性,对其有一个很好的理解的话,许多复杂映射的情形就能被解决了。 47. 使用resultMap或resultType,但不能同时使用。 48. 4)flushCache: 是否清空缓存,默认false,不清空,如果为true每次查询都会清空缓存。 49. 5)useCache: 将其设置为true,将会导致本条语句的结果被缓存。 默认值: true。 50. 6)fetchSize: 这是暗示驱动程序每次批量返回的结果行数。 默认不设置(驱动自行处理)。 51. 7)statementType: STATEMENT,PREPARED或CALLABLE的一种。 这会让MyBatis使用选择使用 52. Statement,PreparedStatement或CallableStatement。 默认值: PREPARED。 53. 8)resultSetType: FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE中的一种。 默认是不设置(驱动自行处理)。 54. --> 55. -- 这里的pageAccessURL是由typeAliases定义的 --> 56. 57. 58. select * from tables where URL_ID = #{id} 59. 60. 61. 62.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mybatis spring 整合 配置 说明