mybatis和spring的整合

Mybatis与Spring的集成

1.配置Spring环境

创建maven工程

 

pom.xml导入依赖

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <parent>
 5         <groupId>cn.itcast.parent</groupId>
 6         <artifactId>itcast-parent</artifactId>
 7         <version>0.0.1-SNAPSHOT</version>
 8     </parent>
 9     <groupId>cn.itcast.mybatis</groupId>
10     <artifactId>itcast-mybatis-spring</artifactId>
11     <version>1.0.0-SNAPSHOT</version>
12 
13 
14     <dependencies>
15         <!-- 单元测试 -->
16         <dependency>
17             <groupId>junit</groupId>
18             <artifactId>junit</artifactId>
19             <scope>test</scope>
20         </dependency>
21         <!-- Mybatis -->
22         <dependency>
23             <groupId>org.mybatis</groupId>
24             <artifactId>mybatis</artifactId>
25         </dependency>
26         <!-- MySql -->
27         <dependency>
28             <groupId>mysql</groupId>
29             <artifactId>mysql-connector-java</artifactId>
30         </dependency>
31         <dependency>
32             <groupId>org.slf4j</groupId>
33             <artifactId>slf4j-log4j12</artifactId>
34         </dependency>
35         <dependency>
36             <groupId>cglib</groupId>
37             <artifactId>cglib</artifactId>
38             <version>3.1</version>
39         </dependency>
40         <dependency>
41             <groupId>com.github.pagehelper</groupId>
42             <artifactId>pagehelper</artifactId>
43             <version>3.7.5</version>
44         </dependency>
45         <dependency>
46             <groupId>com.github.jsqlparser</groupId>
47             <artifactId>jsqlparser</artifactId>
48             <version>0.9.1</version>
49         </dependency>
50 
51         <!-- 整合 -->
52         <dependency>
53             <groupId>org.springframework</groupId>
54             <artifactId>spring-context</artifactId>
55         </dependency>
56         <dependency>
57             <groupId>org.mybatis</groupId>
58             <artifactId>mybatis-spring</artifactId>
59         </dependency>
60 
61         <!-- 连接池 -->
62         <dependency>
63             <groupId>com.jolbox</groupId>
64             <artifactId>bonecp-spring</artifactId>
65             <version>0.8.0.RELEASE</version>
66         </dependency>
67         <dependency>
68             <groupId>org.springframework</groupId>
69             <artifactId>spring-jdbc</artifactId>
70         </dependency>
71         <dependency>
72             <groupId>org.springframework</groupId>
73             <artifactId>spring-aspects</artifactId>
74         </dependency>
75     </dependencies>
76 </project>

创建applicationContext.xml文件

jdbc.properties

1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis_0716?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
3 jdbc.username=root
4 jdbc.password=123456

applicationContext.xml(配置资源文件替换器、配置数据源)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 7         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
 8         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 9 
10     <!-- 使用spring自带的占位符替换功能 -->
11     <bean
12         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
13         <!-- 允许JVM参数覆盖 -->
14         <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
15         <!-- 忽略没有找到的资源文件 -->
16         <property name="ignoreResourceNotFound" value="true" />
17         <!-- 配置资源文件 -->
18         <property name="locations">
19             <list>
20                 <value>classpath:jdbc.properties</value>
21             </list>
22         </property>
23     </bean>
24 
25     <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
26         destroy-method="close">
27         <!-- 数据库驱动 -->
28         <property name="driverClass" value="${jdbc.driver}" />
29         <!-- 相应驱动的jdbcUrl -->
30         <property name="jdbcUrl" value="${jdbc.url}" />
31         <!-- 数据库的用户名 -->
32         <property name="username" value="${jdbc.username}" />
33         <!-- 数据库的密码 -->
34         <property name="password" value="${jdbc.password}" />
35         <!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
36         <property name="idleConnectionTestPeriod" value="60" />
37         <!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
38         <property name="idleMaxAge" value="30" />
39         <!-- 每个分区最大的连接数 -->
40         <property name="maxConnectionsPerPartition" value="150" />
41         <!-- 每个分区最小的连接数 -->
42         <property name="minConnectionsPerPartition" value="5" />
43     </bean>
44 
45 </beans>

applicationContext-mybatis.xml(SqlSessionFactory)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 7         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
 8         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 9 
10     <!-- 定义Mybatis的SqlSessionFactory -->
11     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
12         <!-- 定义数据源 -->
13         <property name="dataSource" ref="dataSource" />
14         <!-- 指定mybatis全局配置文件 -->
15         <property name="configLocation" value="classpath:mybatis-config.xml"></property>
16         
17         <!-- 扫描mappers目录以及子目录下的所有xml文件 -->
18           <property name="mapperLocations" value="classpath:mappers/**/*.xml" />
19           
20           <!-- 别名扫描包 -->
21           <property name="typeAliasesPackage" value="cn.itcast.mybatis.pojo"/>
22     </bean>
23 
24 
25 </beans>

mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 
 7     <settings>
 8         <!-- 开启驼峰自动映射 -->
 9         <setting name="mapUnderscoreToCamelCase" value="true" />
10     </settings>
11 
12 </configuration>

单元测试:

UserMapperTest

 1 package cn.itcast.mybatis.mapper;
 2 
 3 import org.apache.ibatis.session.SqlSession;
 4 import org.apache.ibatis.session.SqlSessionFactory;
 5 import org.junit.Before;
 6 import org.junit.Test;
 7 import org.springframework.context.ApplicationContext;
 8 import org.springframework.context.support.ClassPathXmlApplicationContext;
 9 
10 import cn.itcast.mybatis.pojo.User;
11 
12 public class UserMapperTest {
13     
14     private UserMapper userMapper;
15 
16     @Before
17     public void setUp() throws Exception {
18         // 初始化SPring容器
19         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml",
20                 "applicationContext-mybatis.xml");
21         //从容器中获取SqlSessionFactory
22         SqlSessionFactory sqlSessionFactory = applicationContext.getBean(SqlSessionFactory.class);
23         SqlSession sqlSession = sqlSessionFactory.openSession(true);
24         this.userMapper = sqlSession.getMapper(UserMapper.class);
25     }
26 
27     @Test
28     public void testQueryUserById() {
29         User user = this.userMapper.queryUserById(1L);
30         System.out.println(user);
31     }
32 
33 }

测试成功:

 

注意:我的mysql数据库用户名和密码是root root

所以要修改jdbc.properties设置

1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
3 jdbc.username=root
4 jdbc.password=root

所以对应的改成:

定义Mapper接口

在Spring容器中定义Mapper接口,无需手动获取SqlSessionFactory获取Session以及Mapper,只需要从Spring容器中获取即可。

配置Mapper接口的自动扫描器

多个包怎么配置,可以用逗号

通配符配置Mapper.xml和别名扫描包

 

posted @ 2017-07-29 20:05  星辰郎周  阅读(296)  评论(0编辑  收藏  举报