Spring Boot入门系列八(SpringBoot 整合Mybatis)
SpringBoot 整合Mybatis
由于之前都是使用Hibernate的,所以研究SpringBoot 整合Mybatis这部分内容花费了一定的时间,做完这个小例子,对Mybatis的理解也有了一定的提升。
一、Mybatis简介
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
Mybatis是一款优秀的持久层框架,支持定制化SQL、存储过程和高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、在pom.xml中引入Mybatis依赖
SpringBoot要整合Mybatis,首先需要在pom.xml中引入Mybatis的依赖,具体代码如下:
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

三、在application.properties中添加Mybatis的配置信息
添加Mybatis的配置信息,主要是将Mapper资源文件的存放路径和Dao接口文件的存放目录配置到项目中,让项目可以找到对应的文件。配置信息如下所示:
############################################################ # # mybatis配置 # ############################################################ mybatis.mapper-locations=classpath:/mappers/*Mapper.xml mybatis.type-aliases-package=com.oyc.jdbcdemo.dao

四、建立Dao接口和Mapper文件,实现与数据库的关联
根据步骤三配置的信息,我们先在com.oyc.jdbcdemo.dao中建立OyUserDao.java,具体代码如下:
/**
* 用户dao接口,Mybatis接口
*/
@Mapper
public interface OyUserDao {
/**
* 获取用户列表接口
* @return
*/
List<OyUser> getUserList();
/**
* 根据用户姓名获取用户信息
* @param name
* @return
*/
OyUser getUserByName(@Param("name")String name);
}
然后再classpath:/mappers/中建立与OyUserDao相对应的OyUserMapper.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="com.oyc.jdbcdemo.dao.OyUserDao" >
<resultMap id="OyUser" type="com.oyc.jdbcdemo.entity.OyUser">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="age" property="age" jdbcType="VARCHAR"/>
<result column="sex" property="sex" jdbcType="VARCHAR"/>
</resultMap>
<select id="getUserByName" resultMap="OyUser" parameterType="String">
select * from oy_user u
<where>
u.name = #{name}
</where>
</select>
<select id="getUserList" resultMap="OyUser" parameterType="String">
select * from oy_user
</select>
</mapper>

五、OyUser服务类及其实现类的创建
用户服务类接口:OyUserService.java
/**
* @author oyc
* @Title:
* @Description:用户服务类接口
* @date 2018/7/1414:06
*/
public interface OyUserService {
//获取用户列表
List<OyUser> getUserList();
//根据用户名称获取用户详情信息
OyUser getUserByName(String name);
}

用户服务类接口的实现:OyUserServiceImpl.java
/**
* @author oyc
* @Title:
* @Description:
* @date 2018/7/1414:09
*/
@Service
public class OyUserServiceImpl implements OyUserService {
@Resource
private OyUserDao oyUserDao;
@Override
public List<OyUser> getUserList() {
return oyUserDao.getUserList();
}
@Override
public OyUser getUserByName(String name) {
return oyUserDao.getUserByName(name);
}
}

六、用户控制类
OyUserController.java,注入OyUserService,使用服务类OyUserService去调用dao实现对数据库的操作。
/**
* @author oyc
* @Description:用户控制类
* @date 2018/7/14 14:11
*/
@Controller
@RequestMapping("/user")
public class OyUserController {
@Autowired
private OyUserService oyUserService;
/**
* 获取用户列表信息
*/
@RequestMapping("/list")
public String userList(Model map){
List<OyUser> userList = oyUserService.getUserList();
map.addAttribute("users", userList);
return "user";
}
/**
* 根据用户名获取用户详情信息
* @return
*/
@RequestMapping("/byname")
public String userByName(Model map){
OyUser user = oyUserService.getUserByName("oyc");
map.addAttribute("users", user);
return "user";
}
}
七.测试结果

--------------少年不努力,长大搞程序。欢迎关注,如有错误,恳请指正。


浙公网安备 33010602011771号