mybatis 学习记录1

起因

  以前刚学习java三大框架的时候持久层框架我是自学的是hibernate..感觉蛮好用的,so easy..后来大三实习公司用的是jpa(hibernate外包装一层)...再后来工作1年多用的是spring data(jpa外包装一层)...一直感觉蛮好用的,尤其是Spring data..爱不释手...感觉基本都不用写SQL...

  现在换了新公司,用的是mybatis..用了2个多月了...感觉..在一些情况下会比Spring data还要傻瓜式操作....有很多有趣的地方值得记录...

  这篇文章主要介绍我怎么把mybatis与Spring集成.

 

配置

我觉得XXX框架与Spring集成很多时候其实是一样的套路...本来XXX框架自己单独使用的时候基本都是配置1个自己的Factory加载自己的配置....生成一个核心的Facade类....然后与Spring集成的时候就是配置一个Spring的XXXFactoryBean.然后加载XXX配置....生成XXX框架的Factory...

比如与Spring data或者hibernate集成的时候配置一个LocalContainerEntityManagerFactoryBean生成了entityManagerFactory,可以生成核心的Facade类EntityManager.

mybatis似乎是配置SqlSessionFactoryBean可以生成SqlSessionFactory.然后生成核心的Facade类SqlSession...

按照这个套路配置是这样的

 1  2     xmlns:context="http://www.springframework.org/schema/context" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:repository="http://www.springframework.org/schema/data/repository"
 3     xmlns:jee="http://www.springframework.org/schema/jee"
 4     xsi:schemaLocation="
 5      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
 6      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 7      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
 8      http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
 9      http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd
10      http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
11 ">
12     
13     
14     
15 
16     class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
17         
18         
19         
20         
21     
22 
23     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
24         
25     
26 
27     
28     class="org.mybatis.spring.SqlSessionFactoryBean">
29         
30          
31            
32     
33 
34     
35     class="org.mybatis.spring.mapper.MapperScannerConfigurer">
36         
37     
38 
View Code

然后把这个配置在spring自己的配置里引入就可以了.

1 <import resource="classpath*:/spring/mybatis/mybatis-context.xml" />

mybatis 学习记录1_第1张图片

此外因为mybatis我用到了pagehelper...所以额外配置了mybatis-config..在里面配置pagehelper的interceptor...我觉得这个pagehelper的原理大概是mybatis发送SQL之前拦截并在外面嵌套一层加上分页条件吧.....

这个配置(mybatis-config)是我百度的....

 1   
 2 DOCTYPE configuration  
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 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             
34             
35         
36     
37   
View Code

这样便整合完成了....

 

实际使用效果:

mybatis 学习记录1_第2张图片

 

你可能感兴趣的:(mybatis 学习记录1)