基于注解的mybatis和spring整合.docx

上传人:b****3 文档编号:11624128 上传时间:2023-06-01 格式:DOCX 页数:22 大小:32.61KB
下载 相关 举报
基于注解的mybatis和spring整合.docx_第1页
第1页 / 共22页
基于注解的mybatis和spring整合.docx_第2页
第2页 / 共22页
基于注解的mybatis和spring整合.docx_第3页
第3页 / 共22页
基于注解的mybatis和spring整合.docx_第4页
第4页 / 共22页
基于注解的mybatis和spring整合.docx_第5页
第5页 / 共22页
基于注解的mybatis和spring整合.docx_第6页
第6页 / 共22页
基于注解的mybatis和spring整合.docx_第7页
第7页 / 共22页
基于注解的mybatis和spring整合.docx_第8页
第8页 / 共22页
基于注解的mybatis和spring整合.docx_第9页
第9页 / 共22页
基于注解的mybatis和spring整合.docx_第10页
第10页 / 共22页
基于注解的mybatis和spring整合.docx_第11页
第11页 / 共22页
基于注解的mybatis和spring整合.docx_第12页
第12页 / 共22页
基于注解的mybatis和spring整合.docx_第13页
第13页 / 共22页
基于注解的mybatis和spring整合.docx_第14页
第14页 / 共22页
基于注解的mybatis和spring整合.docx_第15页
第15页 / 共22页
基于注解的mybatis和spring整合.docx_第16页
第16页 / 共22页
基于注解的mybatis和spring整合.docx_第17页
第17页 / 共22页
基于注解的mybatis和spring整合.docx_第18页
第18页 / 共22页
基于注解的mybatis和spring整合.docx_第19页
第19页 / 共22页
基于注解的mybatis和spring整合.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于注解的mybatis和spring整合.docx

《基于注解的mybatis和spring整合.docx》由会员分享,可在线阅读,更多相关《基于注解的mybatis和spring整合.docx(22页珍藏版)》请在冰点文库上搜索。

基于注解的mybatis和spring整合.docx

基于注解的mybatis和spring整合

 

基于注解的mybatis和spring整合

分类:

 spring2013-02-2221:

37 3373人阅读 评论

(2) 收藏 举报

springSpring

基于注解的mybatis和spring整合

博客分类:

∙mybatis

∙spring

∙java

∙ibatis

∙注解

javaibatismybatisspring注解

ibatis改名为mybatis已经将近一年了,mybatis3也发布了,但是相关的开发文档却很少,查阅了官方的使用指南,也是说的模糊不清,一笔带过,尤其是注解部分,只是列举了注解种类,却没有对应的例子,因此可能会给某些兄弟使用mybatis注解带来困惑,我想就我微薄的知识想对mybatis注解的使用以及和spring整合谈谈自己的看法,也希望大家猛烈的指正我的错误。

 

首先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下(如果你使用maven,则jar会根据你的pom配置的依赖自动下载,并存放在你指定的maven本地库中,默认是~/.m2/repository),前一个是mybatis核心包,后一个是和spring整合的包。

 

使用mybatis,必须有个全局配置文件configuration.xml,来配置mybatis的缓存,延迟加载等等一系列属性,该配置文件示例如下:

 

Java代码  

1.

xml version="1.0" encoding="UTF-8" ?

>   

2.

DOCTYPE configuration        

3.    PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"        

4.    "ibatis.apache.org/dtd/ibatis-3-config.dtd">  

5.  

6.      

7.                

-- 全局映射器启用缓存 -->  

8.          

9.                

-- 查询时,关闭关联对象即时加载以提高性能 -->  

10.          

11.                

-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指              定),不会加载关联表的所有字段,以提高性能 -->  

12.          

13.                

-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->  

14.          

15.                

-- 允许使用列标签代替列名 -->  

16.          

17.                

-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->  

18.          

19.                

-- 给予被嵌套的resultMap以字段-属性的映射支持 -->  

20.          

21.                

-- 对于批量更新操作缓存SQL以提高性能  -->  

22.          

23.                

-- 数据库超过25000秒仍未响应则超时 -->  

24.          

25.      

26.        

-- 全局别名设置,在映射文件中只需写别名,而不必写出整个类路径  -->  

27.      

28.         

29.        type=".wotao.taotao.persist.test.dataobject.TestBean" />  

30.      

31.        

-- 非注解的sql映射文件配置,如果使用mybatis注解,该mapper无需配置,但是如果mybatis注解中包含resultMap注解,则mapper必须配置,给resultMap注解使用 -->  

32.      

33.          

34.      

35.  

该文件放在资源文件的任意classpath目录下,假设这里就直接放在资源根目录,等会spring需要引用该文件。

 

查看ibatis-3-config.dtd发现除了settings和typeAliases还有其他众多元素,比如properties,objectFactory,environments等等,这些元素基本上都包含着一些环境配置,数据源定义,数据库事务等等,在单独使用mybatis的时候非常重要,比如通过以构造参数的形式去实例化一个sqlsessionFactory,就像这样:

 

Java代码  

1.SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader);  

2.SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, properties);  

3.SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment, properties);  

而typeHandlers则用来自定义映射规则,如你可以自定义将Character映射为varchar,plugins元素则放了一些拦截器接口,你可以继承他们并做一些切面的事情,至于每个元素的细节和使用,你参考mybatis用户指南即可。

 

现在我们用的是spring,因此除settings和typeAliases元素之外,其他元素将会失效,故不在此配置,spring会覆盖这些元素的配置,比如在spring配置文件中指定c3p0数据源定义如下:

 

Java代码  

1.

-- c3p0 connection pool configuration -->  

2.    

3.        destroy-method="close">  

4.                

-- 数据库驱动 -->  

5.          

6.                

-- 连接URL串 -->  

7.          

8.                

-- 连接用户名 -->  

9.          

10.                

-- 连接密码 -->  

11.          

12.                

-- 初始化连接池时连接数量为5个 -->  

13.          

14.                

-- 允许最小连接数量为5个 -->  

15.          

16.                

-- 允许最接数量为20个 -->  

17.          

18.                

-- 允许连接池最大生成100个PreparedStatement对象 -->  

19.          

20.                

-- 连接有效时间,连接超过3600秒未使用,则该连接丢弃 -->  

21.          

22.                

-- 连接用完时,一次产生的新连接步进值为2 -->  

23.          

24.                

-- 获取连接失败后再尝试10次,再失败则返回DAOException异常 -->  

25.          

26.                

-- 获取下一次连接时最短间隔600毫秒,有助于提高性能 -->  

27.          

28.                

-- 检查连接的有效性,此处小弟不是很懂什么意思 -->  

29.          

30.                

-- 每个1200秒检查连接对象状态 -->  

31.          

32.                

-- 获取新连接的超时时间为10000毫秒 -->  

33.          

34.      

配置中的${}都是占位符,在你指定数据库驱动打war时会自动替换,替换的值在你的父pom中配置,至于c3p0连接池的各种属性详细信息和用法,你自行参考c3p0的官方文档,这里要说明的是checkoutTimeout元素,记得千万要设大一点,单位是毫秒,假如设置太小,有可能会导致没等数据库响应就直接超时了,小弟在这里吃了不少苦头,还是基本功太差。

 

数据源配置妥当之后,我们就要开始非常重要的sessionFactory配置了,无论是hibernate还是mybatis,都需要一个sessionFactory来生成session,sessionFactory配置如下:

 

Java代码  

1.  

2.    

configuration.xml" />  

3.      

4.  

testSqlSessionFactory有两处注入,一个就是前面提到的mybatis全局设置文件configuration.xml,另一个就是上面定义的数据源了(注:

hibernate的sessionFactory只需注入hibernate.cfg.xml,数据源定义已经包含在该文件中),好了,sessionFactory已经产生了,由于我们用的mybatis3的注解,因此spring的sqlSessionTemplate也不用配置了,sqlSessionTemplate也不用注入到我们的BaseDAO中了,相应的,我们需要配置一个映射器接口来对应sqlSessionTemplate,该映射器接口定义了你自己的接口方法,具体实现不用关心,代码如下:

 

Java代码  

1.

-- data OR mapping interface -->  

2.  

3.      

4.      

5.  

对应于sqlSessionTemplate,testMapper同样需要testSqlSessionFactory注入,另外一个注入就是你自己定义的Mapper接口,该接口定义了操作数据库的方法和SQL语句以及很多的注解,稍后我会讲到。

到此,mybatis和spring整合的文件配置就算OK了(注:

如果你需要开通spring对普通类的代理功能,那么你需要在spring配置文件中加入

aspectj-autoproxy/>),至于其他的如事务配置,AOP切面注解等容不在本文围,不作累述。

 

至此,一个完整的myabtis整合spring的配置文件看起来应该如下所示:

 

Java代码  

1.

xml version="1.0" encoding="UTF-8"?

>  

2.

3.    xmlns:

xsi=".w3.org/2001/XMLSchema-instance" xmlns:

context=".springframework.org/schema/context"  

4.    xmlns:

tx=".springframework.org/schema/tx" xmlns:

aop=".springframework.org/schema/aop"  

5.    xsi:

schemaLocation=".springframework.org/schema/beans .springframework.org/schema/beans/spring-beans-2.5.xsd   

6..springframework.org/schema/context .springframework.org/schema/context/spring-context-2.5.xsd   

7..springframework.org/schema/tx .springframework.org/schema/tx/spring-tx-2.5.xsd   

8..springframework.org/schema/aop .springframework.org/schema/aop/spring-aop-2.5.xsd">  

9.  

10.    

-- c3p0 connection pool configuration -->  

11.    

12.        destroy-method="close">  

13.          

14.          

15.          

16.          

17.          

18.          

19.          

20.          

21.          

22.          

23.          

24.          

25.          

26.          

27.          

28.      

29.      

30.        

configuration.xml" />  

31.          

32.      

33.    

-- data OR mapping interface -->  

34.      

35.          

36.          

37.      

38.  

39.    

-- add your own Mapper here -->  

40.  

41.    

-- comment here, using annotation -->  

42.    

--  -->  

43.    

--  -->  

44.    

--  -->  

45.    

-- base DAO class, for module business, extend this class in DAO -->  

46.    

--  -->  

47.    

--  -->  

48.    

--  -->  

49.    

--  -->  

50.  

51.    

-- you can DI Bean if you don't like use annotation -->  

52.  

53.  

到此为止,我们只讲了mybatis和spring的整

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2