欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot入门系列八(SpringBoot 整合Mybatis)

程序员文章站 2023-11-14 09:08:16
SpringBoot 整合Mybatis 由于之前都是使用Hibernate的,所以研究SpringBoot 整合Mybatis这部分内容花费了一定的时间,做完这个小例子,对Mybatis的理解也有了一定的提升。 一、Mybatis简介 MyBatis 本是apache的一个开源项目iBatis, ......

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>

  Spring Boot入门系列八(SpringBoot 整合Mybatis)

三、在application.properties中添加Mybatis的配置信息

  添加Mybatis的配置信息,主要是将Mapper资源文件的存放路径和Dao接口文件的存放目录配置到项目中,让项目可以找到对应的文件。配置信息如下所示:

############################################################
#
# mybatis配置
#
############################################################
mybatis.mapper-locations=classpath:/mappers/*Mapper.xml
mybatis.type-aliases-package=com.oyc.jdbcdemo.dao

  Spring Boot入门系列八(SpringBoot 整合Mybatis)

四、建立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>

  Spring Boot入门系列八(SpringBoot 整合Mybatis)

五、OyUser服务类及其实现类的创建

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

}

  

  Spring Boot入门系列八(SpringBoot 整合Mybatis)

用户服务类接口的实现: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);
    }
}

  Spring Boot入门系列八(SpringBoot 整合Mybatis)

六、用户控制类

 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";
    }
}

Spring Boot入门系列八(SpringBoot 整合Mybatis)

 

七.测试结果

Spring Boot入门系列八(SpringBoot 整合Mybatis)

 git: