SpringBoot整合Mybatis (一) 简单CRUD

SpringBoot整合Mybatis

项目地址:https://gitee.com/qq343509740/SpringBoot-Mybatis


一、简单CRUD方法实现

1. 构建项目

    使用 IDEA 开发工具

1). Create New Project


    添加依赖: Web、MySQL、JDBC、MyBatis


2). pom.xml

    jar包详细说明

    <dependencies>
        <!-- 支持JDBC数据库 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- 支持全栈式Web开发,包括Tomcat和spring-webmvc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 添加Mybatis依赖包 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- 支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


2. 创建数据库

CREATE TABLE user(
	id INT(10) NOT NULL AUTO_INCREMENT COMMENT '编号',
	name VARCHAR(50) NOT NULL COMMENT '用户名',
	PRIMARY KEY(id)
)ENGINE=INNODB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;


3. 项目配置

1). 添加yml配置文件:application.yml

    为什么使用yml?

    yml配置文件在写的时候层次感强,而且最大限度减少代码量,推荐使用yml配置文件。

#配置mysql连接
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?userUnicode=true&characterEncoding=UTF-8
    username: root
    password: root

#配置mybatis
mybatis:
  #配置xml映射路径
  mapper-locations: classpath:mapper/*.xml
  #配置实体类的别名
  type-aliases-package: com.ray.mybatis.entity
  configuration:
    #开启驼峰命名法
    map-underscore-to-camel-case: true

2). 在resources下创建mapper文件夹

     根据yml配置文件中映射路径创建文件夹

3). 在Springboot启动类中添加对mapper包扫描@MapperScan

    或者直接在Mapper类上添加注解@Mapper,建议使用@MapperScan,不然在每个Mapper都添加注解挺麻烦的。

@SpringBootApplication
@MapperScan("com.ray.mybatis.mapper")
public class MybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }
}


4. 编写代码

1). 实体类User

    创建entity包
/**
 * @author Ray
 * @date 2018/7/7 0007
 * 用户实体类
 */
public class User {

    /**
     * 编号(主键)
     */
    private int id;

    /**
     * 用户名
     */
    private String name;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User() {
    }

    public User(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

2). 数据操作类UserMapper

    创建mapper包

/**
 * @author Ray
 * @date 2018/7/7 0007
 * 数据操作层-DAO
 */
public interface UserMapper {

    /**
     * 根据id获取用户信息
     */
    public User selectById(Integer id);

    /**
     * 查询所有用户信息
     */
    public List<User> list();

    /**
     * 新增用户信息
     */
    public int insert(User user);

    /**
     * 修改用户信息
     */
    public int update(User user);

    /**
     * 删除用户信息
     */
    public int delete(Integer id);
}


3). UserMapper类映射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.ray.mybatis.mapper.UserMapper">

    <!-- 新增用户信息 -->
    <insert id="insert" parameterType="user">
        INSERT INTO
        user(name)
        VALUES
        (#{name})
    </insert>

    <!-- 修改用户信息 -->
    <update id="update" parameterType="user">
        UPDATE
        user
        SET
        name=#{name}
        WHERE
        id=#{id}
    </update>

    <!-- 删除用户信息 -->
    <delete id="delete">
        DELETE
        FROM
        user
        WHERE
        id=#{id}
    </delete>

    <!-- 根据id获取用户信息 -->
    <select id="selectById" resultType="user" parameterType="int">
        SELECT
        *
        FROM
        user
        WHERE
        id=#{id}
    </select>

    <!-- 查询所有用户信息 -->
    <select id="list" resultType="user">
        SELECT
        *
        FROM
        user
    </select>
</mapper>


4). 数据控制类UserController

    创建controller包

/**
 * @author Ray
 * @date 2018/7/7 0007
 * 数据控制层
 */
@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    /**
     * 根据id获取用户信息
     * localhost:8080/user/2
     */
    @GetMapping("/user/{id}")
    public User selectById(@PathVariable("id")Integer id){
        User user = userMapper.selectById(id);
        return user;
    }

    /**
     * 查询所有用户信息
     * localhost:8080/users
     */
    @GetMapping("/users")
    public List<User> list(){
        List<User> users = userMapper.list();
        return users;
    }

    /**
     * 新增用户信息
     * localhost:8080/user?name=Ray1
     */
    @PostMapping("/user")
    public String insert(User user){
        int result = userMapper.insert(user);
        if(result == 1){
            return "success";
        }
        return "fail";
    }

    /**
     * 修改用户信息
     * localhost:8080/user/2?name=Ray22
     */
    @PutMapping("/user/{id}")
    public String update(User user, @PathVariable("id") Integer id){
        int result = userMapper.update(user);
        if(result == 1){
            return "success";
        }
        return "fail";
    }

    /**
     * 删除用户信息
     * localhost:8080/user/8
     */
    @DeleteMapping("/user/{id}")
    public String delete(@PathVariable("id") Integer id){
        int result = userMapper.delete(id);
        if(result == 1){
            return "success";
        }
        return "fail";
    }
}



5. 测试

    新增用户信息-POST


    根据id查询用户信息-GET


    查询所有用户信息-GET


    修改用户信息-PUT


    删除用户信息-DELETE


猜你喜欢

转载自blog.csdn.net/q343509740/article/details/80948422