Spring Boot 初级入门教程(十五) —— 集成 MyBatis
基于上篇文章,这篇主要说下如何集成 MyBatis,这样测试时也不用在像 JdbcTemplate 那样在 java 代码中写 sql 语句了。
一、添加 MyBatis 依赖包
在 pom 文件中,添加支持 MyBatis 的依赖包,如下:
		<!-- mybatis插件 -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>二、新建存放 xml 的目录
在 resources 目录下,创建 mapper > mysql 目录,如图:
三、配置读取 xml 文件的路径
在 properties 文件中,配置读取 xml 文件的路径信息,如下:
#################################
## MyBatis 配置
#################################
mybatis.mapper-locations=classpath:mapper/mysql/*.xml四、创建包
为了让代码目录更加信息明了,需要创建几个包:mapper、service,如图:
五、编写测试代码
实体类 UserInfo.java:
package com.menglanglang.test.springboot.entity;
/**
 * @desc 用户信息类
 *
 * @author 孟郎郎
 * @blog http://blog.csdn.net/tzhuwb
 * @version 1.0
 * @date 2018年9月16日下午4:59:40
 */
public class UserInfo {
	/**
	 * 主键
	 */
	private int id;
	/**
	 * 用户姓名
	 */
	private String name;
	/**
	 * 用户年龄
	 */
	private int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
SQL脚本 mybati-mapper.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.menglanglang.test.springboot.mapper.MyBatisMapper">
	<resultMap id="UserMap" type="com.menglanglang.test.springboot.entity.UserInfo">
		<result column="ID" property="id" jdbcType="INTEGER" />
		<result column="NAME" property="name" jdbcType="VARCHAR" />
		<result column="AGE" property="age" jdbcType="INTEGER" />
	</resultMap>
	<select id="selectUserList" resultMap="UserMap">
		select * from user
	</select>
	<select id="selectUser" parameterType="java.lang.Integer" resultMap="UserMap">
		select * from user where id = #{id,jdbcType=INTEGER}
	</select>
</mapper>Mapper接口 MyBatisMapper.java:
package com.menglanglang.test.springboot.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.menglanglang.test.springboot.entity.UserInfo;
/**
 * @desc MyBatis Mapper类
 *
 * @author 孟郎郎
 * @blog http://blog.csdn.net/tzhuwb
 * @version 1.0
 * @date 2018年9月16日下午4:56:53
 */
@Mapper
public interface MyBatisMapper {
	/**
	 * 查询用户信息列表
	 * 
	 * @return 用户信息列表
	 */
	List<UserInfo> selectUserList();
	/**
	 * 查询指定用户
	 * 
	 * @param id
	 *            用户ID
	 * @return 用户信息
	 */
	UserInfo selectUser(int id);
}
服务类 MyBatisService.java:
package com.menglanglang.test.springboot.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.menglanglang.test.springboot.entity.UserInfo;
import com.menglanglang.test.springboot.mapper.MyBatisMapper;
/**
 * @desc MyBatis服务接口类
 *
 * @author 孟郎郎
 * @blog http://blog.csdn.net/tzhuwb
 * @version 1.0
 * @date 2018年9月16日下午4:56:53
 */
@Service
public class MyBatisService {
	@Autowired
	private MyBatisMapper myBatisMapper;
	/**
	 * 查询用户信息列表
	 * 
	 * @return 用户信息列表
	 */
	public List<UserInfo> getUserList() {
		return myBatisMapper.selectUserList();
	}
	/**
	 * 查询指定用户
	 * 
	 * @param id
	 *            用户ID
	 * @return 用户信息
	 */
	public UserInfo getUser(int id) {
		return myBatisMapper.selectUser(id);
	}
}
测试类 MyBatisController.java:
package com.menglanglang.test.springboot.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.menglanglang.test.springboot.entity.UserInfo;
import com.menglanglang.test.springboot.service.MyBatisService;
/**
 * @desc MyBatis测试控制类
 *
 * @author 孟郎郎
 * @blog http://blog.csdn.net/tzhuwb
 * @version 1.0
 * @date 2018年9月16日下午4:54:58
 */
@RestController
@RequestMapping("/mybatis")
public class MyBatisController {
	@Autowired
	private MyBatisService myBatisService;
	@RequestMapping("/getUsers")
	public List<UserInfo> getUsers() {
		List<UserInfo> list = myBatisService.getUserList();
		return list;
	}
	@RequestMapping("/getUser")
	public UserInfo getUser() {
		UserInfo user = myBatisService.getUser(2);
		return user;
	}
}
六、启动项目并测试
启动项目,浏览器访问 http://localhost:8080/mybatis/getUser 和 http://localhost:8080/mybatis/getUsers 测试结果如下:
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号