Spring Boot 初级入门教程(十五) —— 集成 MyBatis
2018年09月16日 18:25:36 SpringBoot ⁄ 共 4887字 暂无评论 ⁄ 被围观 3,403次

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

  1. package com.menglanglang.test.springboot.entity;  
  2.   
  3. /** 
  4.  * @desc 用户信息类 
  5.  * 
  6.  * @author 孟郎郎 
  7.  * @blog http://blog.csdn.net/tzhuwb 
  8.  * @version 1.0 
  9.  * @date 2018年9月16日下午4:59:40 
  10.  */  
  11. public class UserInfo {  
  12.   
  13.     /** 
  14.      * 主键 
  15.      */  
  16.     private int id;  
  17.   
  18.     /** 
  19.      * 用户姓名 
  20.      */  
  21.     private String name;  
  22.   
  23.     /** 
  24.      * 用户年龄 
  25.      */  
  26.     private int age;  
  27.   
  28.     public int getId() {  
  29.         return id;  
  30.     }  
  31.   
  32.     public void setId(int id) {  
  33.         this.id = id;  
  34.     }  
  35.   
  36.     public String getName() {  
  37.         return name;  
  38.     }  
  39.   
  40.     public void setName(String name) {  
  41.         this.name = name;  
  42.     }  
  43.   
  44.     public int getAge() {  
  45.         return age;  
  46.     }  
  47.   
  48.     public void setAge(int age) {  
  49.         this.age = age;  
  50.     }  
  51.   
  52. }  

SQL脚本 mybati-mapper.xml:

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  
  3. <mapper namespace="com.menglanglang.test.springboot.mapper.MyBatisMapper">  
  4.     <resultMap id="UserMap" type="com.menglanglang.test.springboot.entity.UserInfo">  
  5.         <result column="ID" property="id" jdbcType="INTEGER" />  
  6.         <result column="NAME" property="name" jdbcType="VARCHAR" />  
  7.         <result column="AGE" property="age" jdbcType="INTEGER" />  
  8.     </resultMap>  
  9.   
  10.     <select id="selectUserList" resultMap="UserMap">  
  11.         select * from user  
  12.     </select>  
  13.   
  14.     <select id="selectUser" parameterType="java.lang.Integer" resultMap="UserMap">  
  15.         select * from user where id = #{id,jdbcType=INTEGER}  
  16.     </select>  
  17.   
  18. </mapper>  

Mapper接口 MyBatisMapper.java:

  1. package com.menglanglang.test.springboot.mapper;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.apache.ibatis.annotations.Mapper;  
  6.   
  7. import com.menglanglang.test.springboot.entity.UserInfo;  
  8.   
  9. /** 
  10.  * @desc MyBatis Mapper类 
  11.  * 
  12.  * @author 孟郎郎 
  13.  * @blog http://blog.csdn.net/tzhuwb 
  14.  * @version 1.0 
  15.  * @date 2018年9月16日下午4:56:53 
  16.  */  
  17. @Mapper  
  18. public interface MyBatisMapper {  
  19.   
  20.     /** 
  21.      * 查询用户信息列表 
  22.      *  
  23.      * @return 用户信息列表 
  24.      */  
  25.     List<UserInfo> selectUserList();  
  26.   
  27.     /** 
  28.      * 查询指定用户 
  29.      *  
  30.      * @param id 
  31.      *            用户ID 
  32.      * @return 用户信息 
  33.      */  
  34.     UserInfo selectUser(int id);  
  35.   
  36. }  

服务类 MyBatisService.java:

  1. package com.menglanglang.test.springboot.service;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.stereotype.Service;  
  7.   
  8. import com.menglanglang.test.springboot.entity.UserInfo;  
  9. import com.menglanglang.test.springboot.mapper.MyBatisMapper;  
  10.   
  11. /** 
  12.  * @desc MyBatis服务接口类 
  13.  * 
  14.  * @author 孟郎郎 
  15.  * @blog http://blog.csdn.net/tzhuwb 
  16.  * @version 1.0 
  17.  * @date 2018年9月16日下午4:56:53 
  18.  */  
  19. @Service  
  20. public class MyBatisService {  
  21.   
  22.     @Autowired  
  23.     private MyBatisMapper myBatisMapper;  
  24.   
  25.     /** 
  26.      * 查询用户信息列表 
  27.      *  
  28.      * @return 用户信息列表 
  29.      */  
  30.     public List<UserInfo> getUserList() {  
  31.         return myBatisMapper.selectUserList();  
  32.     }  
  33.   
  34.     /** 
  35.      * 查询指定用户 
  36.      *  
  37.      * @param id 
  38.      *            用户ID 
  39.      * @return 用户信息 
  40.      */  
  41.     public UserInfo getUser(int id) {  
  42.         return myBatisMapper.selectUser(id);  
  43.     }  
  44.   
  45. }  

测试类 MyBatisController.java:

  1. package com.menglanglang.test.springboot.controller;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import org.springframework.web.bind.annotation.RestController;  
  8.   
  9. import com.menglanglang.test.springboot.entity.UserInfo;  
  10. import com.menglanglang.test.springboot.service.MyBatisService;  
  11.   
  12. /** 
  13.  * @desc MyBatis测试控制类 
  14.  * 
  15.  * @author 孟郎郎 
  16.  * @blog http://blog.csdn.net/tzhuwb 
  17.  * @version 1.0 
  18.  * @date 2018年9月16日下午4:54:58 
  19.  */  
  20. @RestController  
  21. @RequestMapping("/mybatis")  
  22. public class MyBatisController {  
  23.   
  24.     @Autowired  
  25.     private MyBatisService myBatisService;  
  26.   
  27.     @RequestMapping("/getUsers")  
  28.     public List<UserInfo> getUsers() {  
  29.         List<UserInfo> list = myBatisService.getUserList();  
  30.         return list;  
  31.     }  
  32.   
  33.     @RequestMapping("/getUser")  
  34.     public UserInfo getUser() {  
  35.         UserInfo user = myBatisService.getUser(2);  
  36.         return user;  
  37.     }  
  38.   
  39. }  

六、启动项目并测试

启动项目,浏览器访问 http://localhost:8080/mybatis/getUser 和 http://localhost:8080/mybatis/getUsers 测试结果如下:

​原文链接:https://blog.csdn.net/tzhuwb/article/details/82725788

给我留言

留言无头像?