SpringBoot整合Mybatis

SpringBoot整合Mybatis

一、pom导入mybatis启动器

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- mybatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

二、配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 12345678

mybatis:
  type-aliases-package: com.example.mybatis.pojo  # 所有POJO类所在包路径
  mapper-locations: classpath:mapper/*.xml        # mapper映射文件路径

三、demo

1、demo工程结构

image

2、/pojo/User.java

package com.example.mybatis.pojo;

public class User {

    private Integer id;
    private String user_name;
    private String login_name;

    public User() {
    }

    public User(Integer id, String user_name, String login_name) {
        this.id = id;
        this.user_name = user_name;
        this.login_name = login_name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public String getLogin_name() {
        return login_name;
    }

    public void setLogin_name(String login_name) {
        this.login_name = login_name;
    }
}

3、/mapper/UserMapper.java

package com.example.mybatis.mapper;

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

import java.util.List;

@Mapper // 表明这是一个Mapper类,可以被mybatis扫描到
@Repository
public interface UserMapper {

    List<User> queryAll();

    void add(User user);

    void update(User user);

    void delete(Integer id);
}
  • @Mapper 表明这是一个Mapper类,可以被mybatis扫描到

  • 我们也可以不使用@Mapper这个注解,我们在启动类XxxApplication中添加@MapperScan("mapper包路径")注解也是一样的作用。

    package com.example.mybatis;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.example.mybatis.mapper")
    public class MybatisApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisApplication.class, args);
        }
    
    }
    

4、classpath:mapper/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">
<!-- UserMapper类映射好 -->
<mapper namespace="com.example.mybatis.mapper.UserMapper">
    <!-- id映射UserMapper类中的方法名,resultType:返回值类型 -->
    <select id="queryAll" resultType="User">
        select * from sys_user
    </select>

    <!-- parameterType:参数类型 -->
    <insert id="add" parameterType="User">
        insert into sys_user(id, user_name, login_name) values (#{id}, #{user_name}, #{login_name})
    </insert>

    <update id="update" parameterType="User">
        update sys_user set user_name=#{user_name}, login_name=#{login_name} where id=#{id}
    </update>

    <delete id="delete" parameterType="User">
        delete from sys_user where id=#{id}
    </delete>
</mapper>

5、/controller/UserController.java

最后简单写了个controller类,使用rest接口测试下:

package com.example.mybatis.controller;

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

import java.util.List;

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("query")
    public List<User> queryAll(){
        return userMapper.queryAll();
    }

    @RequestMapping("add")
    public String add(){
        userMapper.add(new User(100, "jim", "login"));
        return "add Ok";
    }

    @RequestMapping("update/{id}")
    public String update(@PathVariable Integer id){
        userMapper.update(new User(id, "jim2", "login2"));
        return "update Ok";
    }

    @RequestMapping("delete/{id}")
    public String delete(@PathVariable Integer id){
        userMapper.delete(id);
        return "delete Ok";
    }
}
posted @ 2021-05-09 16:35  金盛年华  阅读(55)  评论(0编辑  收藏  举报