springboot之MybatisPlus

发布于:2024-04-03 ⋅ 阅读:(131) ⋅ 点赞:(0)

一、ORM

简单来说ORM就是一个能够帮我们把java中Bean类映射到数据库中。

在这里插入图片描述

使用mybatis-plus。

  • 配置架包
<!--      MyBatisPlus依赖   -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
<!--       mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

<!--       数据连接池增加数据查询效率-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.20</version>
        </dependency>

下载以后需要配置application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url= jdbc:mysql://localhost:3306/"你的数据库名"?useSSL=false&characterEncoding=utf8
spring.datasource.username="你的账号"
spring.datasource.password="你的密码"
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在启动函数增加注解@MapperScan("Mapper的路径")
在这里插入图片描述

相关注解
在这里插入图片描述

二、mybatis实际操作

  • 首先创建好对应的数据库
create database hello;

CREATE TABLE User (  
    id INT PRIMARY KEY,  
    username VARCHAR(255) NOT NULL,  
    password VARCHAR(255) NOT NULL,  
    birthday VARCHAR(10)  -- 假设日期格式为 YYYY-MM-DD,长度为10  
);


INSERT INTO User (id, username, password, birthday) VALUES  
(1, 'Alice', 'password123', '1990-01-01'),  
(2, 'Bob', 'pass456word', '1992-05-10');
  • 在mapper下创建一个基于Bean为主的mapper接口!
    UserMapper

  • 在UserMapper里面声明方法。记得加@Mapper

@Mapper
public interface UserMapper {

    //查询所有用户
    @Select("select * from user")
    public List<User> find();
}
  • 在controller写查询接口,其中要使用刚才在UserMapper写好的接口。
	//使用Autowired注解注入接口
	@Autowired
    private UserMapper userMapper;
	//使用与数据库字段对应的Bean接受数据User。
    @GetMapping("/user")
    public List query(){
        List<User> list = userMapper.find();
        System.out.println(list);
        return list;
    }
  • User的代码
	private int id;
    private String username;
    private String password;
    private String birthday;
	
	//get 
	//set
	//使用鼠标右键generate生成

调用我们的写好的query()接口,就能在控制台看到我们的查询结果了。
在这里插入图片描述
在这里插入图片描述
一些方法的参考
在这里插入图片描述
controller文件如下

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

    @GetMapping("/user")
    public List query(){
        List<User> list = userMapper.find();
        System.out.println(list);
        return list;
    }
    @PostMapping("/user/insert")
    public String insert(User user){
        int i = userMapper.insert(user);
        if (i > 0){
            return "successful";
        }
        else{
            return "failed";
        }
    }

    @DeleteMapping("/user/delete/{id}")
    public String delete(@PathVariable int id){
        int j = userMapper.delete(id);
        if (j > 0){
            return "delete successfully";
        }else{
            return "delete fail";
        }
    }
	
	//这个还有点问题,还要改
    @PutMapping("/user/update/{id}")
    public String update(@PathVariable int id,@PathVariable User user){
        System.out.println(id);

        int k = userMapper.update(user);
        if (k > 0){
            return "update successfully";
        }else{
            return "update fail";
        }

    }
}

三、mybatis-plus

Mapper文件如下

@Mapper
public interface UserMapper2 extends BaseMapper<User> {

}

Controller文件如下

@RestController
public class UserController2 {

    @Autowired
    private UserMapper2 userMapper2;

    @GetMapping("/user2")
    public List query(){
        List<User> list= userMapper2.selectList(null);
        System.out.println(list);
        return list;
    }

    @PostMapping("user2/insert")
    public String insert(User user){
        int i = userMapper2.insert(user);
        if (i > 0){
            return "successful";
        }
        else{
            return "failed";
        }
    }
}
  • 如果Bean名和表明不一致,可以通过增加注解设定对应的表@TableName

在这里插入图片描述

  • 指定列自增

在这里插入图片描述

  • 将Bean类中的属性映射到表列,如果不一致。
    在这里插入图片描述

网站公告

今日签到

点亮在社区的每一天
去签到