victory的博客

长安一片月,万户捣衣声

0%

SpringBoot | SpringBoot集成MyBatis

SpringBoot集成MyBatis

  • 项目目录
  • 导入MyBatis所需要的依赖
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!--mybatis-springboot-->
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
    </dependency>

    <!--lombok-->
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    </dependency>
  • 数据库和表
  • 配置数据库连接信息(application.yaml)、配置mybatis
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    spring:
    datasource:
    username: root
    password: 123456
    #?serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver

    # 整合mybatis
    mybatis:
    type-aliases-package: com.example.pojo
    mapper-locations: classpath:mybatis/mapper/*.xml
  • 创建实体类User.java(需要用到lombok)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package com.example.pojo;

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
    private int id;
    private String name;
    private String pwd;
    }
  • 创建Mapper接口UserMapper.java
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package com.example.mapper;

    import com.example.pojo.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;

    import java.util.List;

    @Mapper
    @Repository
    public interface UserMapper {
    List<User> queryUserList();

    User queryUserById(int id);

    int addUser(User user);

    int updateUser(User user);

    int deleteUser(int id);
    }
  • 创建映射文件UserMapper.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?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.example.mapper.UserMapper">
    <!--resultType="User"和parameterType="User"只有配置了type-aliases-package后才能起作用-->
    <select id="queryUserList" resultType="User">
    select * from user
    </select>

    <select id="queryUserById" resultType="User">
    select * from user where id = #{id}
    </select>

    <insert id="addUser" parameterType="User">
    insert into user (id, name, pwd) values (#{id}, #{name}, #{pwd})
    </insert>

    <update id="updateUser" parameterType="User">
    update user set name=#{name},pwd=#{pwd} where id = #{id}
    </update>

    <delete id="deleteUser" parameterType="int">
    delete from user where id = #{id}
    </delete>
    </mapper>
  • 编写UserController.java进行测试
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package com.example.controller;

    import com.example.mapper.UserMapper;
    import com.example.pojo.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;

    import javax.websocket.server.PathParam;
    import java.util.List;

    @RestController
    public class UserController {
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/queryUserList")
    public List<User> queryUserList(){
    List<User> userList = userMapper.queryUserList();
    return userList;
    }

    @GetMapping("/queryUserById/{id}")
    public User queryUserById(@PathVariable Integer id){
    User user = userMapper.queryUserById(id);
    return user;
    }

    // @GetMapping("/addUser") //http://localhost:8080/addUser?id=4&name=wangmazi&pwd=91011
    // public String addUser(@PathParam("id")Integer id, @PathParam("name")String name, @PathParam("pwd")String pwd){
    // userMapper.addUser(new User(id, name, pwd));
    // return "ok";
    // }
    @GetMapping("/addUser/{id}/{name}/{pwd}") //http://localhost:8080/addUser/4/wangmazi/123
    public String addUser(@PathVariable("id") Integer id, @PathVariable("name") String name, @PathVariable("pwd") String pwd){
    userMapper.addUser(new User(id, name, pwd));
    return "ok";
    }

    @GetMapping("/updateUser")
    public String updateuser(){
    userMapper.updateUser(new User(5, "liuba", "325"));
    return "ok";
    }

    @GetMapping("/deleteUser/{id}")
    public String deleteUser(@PathVariable("id") Integer id){
    userMapper.deleteUser(id);
    return "ok";
    }
    }