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

 

七.测试结果

 git:https://github.com/oycyqr/springjdbcdemo

posted @ 2018-07-14 15:50  乾源  阅读(323)  评论(0编辑  收藏  举报