P7 MybatisPlus的快速上手

内容:ORM介绍 Mybatis-Plus介绍 Mybatis-Plus CRUD操作

  1. ORM介绍
    P7 MybatisPlus的快速上手_第1张图片
    P7 MybatisPlus的快速上手_第2张图片
  2. Mybatis-Plus介绍
    P7 MybatisPlus的快速上手_第3张图片
  3. 任务:查询所有用户
  • 添加依赖
  
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.3.1version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.47version>
        dependency>
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druid-spring-boot-starterartifactId>
            <version>1.1.20version>
        dependency>
  • 配置文件中加入数据库配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  • 创建数据库mydb并执行该sql
/*
 Navicat MySQL Data Transfer

 Source Server         : localhost_3306
 Source Server Type    : MySQL
 Source Server Version : 50649
 Source Host           : localhost:3306
 Source Schema         : mydb

 Target Server Type    : MySQL
 Target Server Version : 50649
 File Encoding         : 65001

 Date: 31/03/2023 16:52:03
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `birthday` time(6) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'ljh', '123', '16:30:54.000000');
INSERT INTO `user` VALUES (2, 'yxy', '222', '16:31:09.000000');

SET FOREIGN_KEY_CHECKS = 1;

  • 创建实体类uesr
package com.example.mdpdemo.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String birthday;

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

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

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public int getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getBirthday() {
        return birthday;
    }
}
  • 在根目录下创建mapper包
    P7 MybatisPlus的快速上手_第4张图片

  • 在启动类中添加一个包扫描:@MapperScan(“com.example.mdpdemo.mapper”)

@SpringBootApplication
@MapperScan("com.example.mdpdemo.mapper")
public class MdpdemoApplication {

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

}
  • 加入swagger:加入方法见本专栏
  • 创建mapper接口
//定义mapper注解让其扫描
@Mapper
public interface UserMapper {
    //查询所有用户,通过 @Select去数据库里查询所有用户并封装进list中
    @Select("select * from user")
    public List<User> find();
}

  • 控制类
@RestController
public class UserController {
    //注入UserMapper,spring自动将mapper装配好了
    @Autowired
    private UserMapper userMapper;
    @ApiOperation("查询用户")
    @GetMapping("/user")
    public String query(){
        //实体类都在IOC容器中
        List<User> users = userMapper.find();
        System.out.println(users);
        return "查询用户";
    }
    @GetMapping("/in")
    public String in(){
        return "in";
    }
}

  • 用swagger测试接口
    P7 MybatisPlus的快速上手_第5张图片

  • 查询结果
    在这里插入图片描述

  1. 以json格式给前端,将返回值转为List就自动装配为json了
@ApiOperation("查询用户")
    @GetMapping("/user")
    public List query(){
        //实体类都在IOC容器中
        //使用List可以直接将获取到的数据转为json格式给前端用
        List<User> users = userMapper.find();
        System.out.println(users);
        return users;
    }
  • 测试结果:
    P7 MybatisPlus的快速上手_第6张图片
  1. 任务:增加一个用户,并展示给前端
  • 先在mapper中编写sql语句,注意:增加用户返回值为影响的行数
//增加一个用户
    @Insert("insert into user values (#{id},#{username},#{password},#{birthday})")
    public int addUser(User user);
    //根据名字查询一个用户
    @Select("select * from user where username = #{username}")
    public User selectOne(String username);
  • 在控制层编写代码,注意用post
@PostMapping("/user1")
	//需要一个user对象,并且会返回一个user对象
    public User save(User user){
        //前端自动装配成类
        int i = userMapper.addUser(user);
        if (i!=0) {
            System.out.println("插入成功");
            return userMapper.selectOne("lhp");
        }
        return null;
    }

运行结果:
P7 MybatisPlus的快速上手_第7张图片
在这里插入图片描述

用mybatisplus进行改造

  • 官网
  • 直接在mapper中继承一个basemapper,并且给他一个泛型,他就可以根据这个泛型找到数据库中相应的表,注意名字一致
@Mapper
public interface UserMapper extends BaseMapper<User> {

}
  • 控制层:插入一个用户并通过map的方式查询并展示给前端
    @PostMapping("/user1")
    public List<User> save(User user){
        //前端自动装配成类
        //用plus增加一个用户
        int i = userMapper.insert(user);
        if (i!=0) {
            System.out.println("插入成功");
            //用plus框架根据id查询
            HashMap<String, Object> map = new HashMap<>();
            map.put("username","lhp");
            return userMapper.selectByMap(map);
        }
        return null;
    }

你可能感兴趣的:(自用教程,mybatis,java,开发语言)