Spring Boot 初级入门教程(十五) —— 集成 MyBatis

版权声明:本文为博主原创文章,转载请注明文章链接。 https://blog.csdn.net/tzhuwb/article/details/82725788

基于上篇文章,这篇主要说下如何集成 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 测试结果如下:

猜你喜欢

转载自blog.csdn.net/tzhuwb/article/details/82725788