写文章

在Spring Boot中集成Mybatis

2018-11-27 18:55:06

3398 | 0 | 0

在Spring Boot中集成Mybatis


 在POM中添加Mybatis的相关起步依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

 

 配置数据库连接,我们在application.yml文件中配置一下内容

spring:
  datasource:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/restful?useUnicode=true&characterEncoding=UTF-8&useSSL=false
      username: root
      password: root
      initialize: true


 在数据库中创建user表,字段为ID(INT),NAME(VARCHAR),HOBBY(VARCHAR),并创建user实体Bean,如下:

public class User {
    private Integer id;
    private String name;
    private String hobby;
    //省去get、set方法
    //之前文章我提过一个lombok的框架,可以省去get set方法,大家可以参考一下
    //https://my.oschina.net/wangxincj/blog/811611
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}


 user对象创建好后我们编写UserMapper,此处有两种方法,大家可以自行选择:

  

 1、第一种方法如下:


   编写Mapper

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {
    int insert(@Param("pojo") User pojo);

    int insertList(@Param("pojos") List<User> pojo);

    int update(@Param("pojo") User pojo);
}


 在resources文件夹下面创建mapper文件夹,存放mapper.xml文件 

  编写UserMapper.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.wang.mybatis.UserMapper">

    <!--auto generated Code-->
    <resultMap id="AllColumnMap" type="com.wang.mybatis.User">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="hobby" property="hobby"/>
    </resultMap>

    <!--auto generated Code-->
    <sql id="all_column">
        `id`,
        `name`,
        `hobby`
    </sql>

    <!--auto generated Code-->
    <insert id="insert">
        INSERT INTO `user`
        (`id`,`name`,`hobby`)
        VALUES (#{pojo.id},#{pojo.name},#{pojo.hobby})
    </insert>

    <!--auto generated Code-->
    <insert id="insertList">
        INSERT INTO `user`(
        <include refid="all_column"/>
        )VALUES
        <foreach collection="pojos" item="pojo" index="index" separator=",">
            (
            #{pojo.id},
            #{pojo.name},
            #{pojo.hobby}
            )
        </foreach>
    </insert>

    <!--auto generated Code-->
    <update id="update">
        UPDATE `user`
        <set>
            <if test="pojo.id != null"> `id` = #{pojo.id}, </if>
            <if test="pojo.name != null"> `name` = #{pojo.name}, </if>
            <if test="pojo.hobby != null"> `pwd` = #{pojo.hobby} </if>
        </set>
        WHERE `id` = #{pojo.id}
    </update>

</mapper>


 在application.yml中添加Mybatis的相关配置

mybatis:
  mapper-locations: classpath*:mapper/*Mapper.xml
  type-aliases-package: com.wang.mybatis


2、第二种方法如下


 编写Mapper对象

@Mapper
public interface UserMapper {
    @Insert("INSERT INTO user(name, hobby) VALUES(#{name}, #{hobby})")
    int insert(@Param("name") String name, @Param("hobby") String hobby);
    @Update("UPDATE user SET hobby=#{hobby} WHERE name=#{name}")
    void update(User user);
    @Delete("DELETE FROM user WHERE id =#{id}")
    void delete(Long id);
}


不难看出第一种方法是比较传统的xml方式配置,而第二种方式则是去除了xml将sql配置到了注解中,简化了配置,也更符合Spring Boot的初衷。两种方法大家看自己的情况而定吧。


    至此,Mybatis的相关配置完成。


0

收藏
分享