Spring和MyBatis的整合使用
有关MyBatis的相关知识可查看MyBatis框架。
MyBatis框架具体的实现步骤为:
- 创建MyBatis的全局配置文件,配置数据源信息,配置映射。
- 通过读取MyBatis的全局配置文件创建sqlSessionFactory实例。(会话工厂是需要创建一份就可以了)
- 通过会话工厂创建会话,sqlSession。
整合思想
-
Spring通过单例方式管理sqlSessionFactory实例对象。
-
Spring和MyBatis整合生成代理对象,使用sqlSessionFactory创建sqlSession,整合自动完成。
-
持久层的Mapper都需要交给Spring管理。
-
在MyBatis中,sqlSessionFactory由sqlSessionFactoryBuilder来创建。
-
在MyBatis和Spring整合过程中,使用sqlSessionFactoryBean来替代,sqlSessionFactoryBean有一个必须的属性DataSource,另外还需要一个通用的属性configLocation(用来指定mybatis的xml配置文件)。
整合步骤
1、引入spring-mybatis的整合jar包
- 引入Spring的依赖。
- 引入MyBatis的依赖。
- 还需要MyBatis提供的一个专门整合Spring的jar包:
mybatis-spring
。
<!--mybatis和spring整合jar-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
2、创建bean类,mapper.xml和mapper.java文件
- bean类(实体类)
/**
* 数据库映射对象
*/
public class User {
private Long id;
private String userName;
private long sex;
private String address;
//省略get/set方法
}
- mapper.java接口文件(userMapper)
public interface UserMapper {
public User getUserById(Long id);
}
- mapper.xml文件(UserMapper.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper:根标签,namespace命令空间,随便写,一般保证命名空间唯一 -->
<mapper namespace="com.tulun.dao.UserMapper">
<select id="getUserById" resultType="com.tulun.bean.User">
select * from user where id=#{id};
</select>
</mapper>
3、整合sqlSessionFactory创建
- spring-mybatis.xml