使用mybatis-plus对mysql数据库进行增删改查

目录

目录

1.创建maven工程

​编辑2.导入依赖Mybatis-puls

第三步:创建数据库表

4.在application.yml连接数据库

5.创建Student实体类

6.在启动类上加入@MapperScan注解扫描到mapper文件

 7.创建mapper包,创建mapper接口

 8.测试完成增删改查

9.自动填充

 10.plus的原生方法

删除

 1.delete--条件删除

 2.deleteBathIds--根据id批量删除

3. deleteById--根据id删除单条数据

 4.deleteByMap--根据条件删除


1.创建maven工程

勾选Spring Web MySql Lombok

2.导入依赖Mybatis-puls

在pom文件夹导入依赖Mybatis-puls

小知识:spring外部的依赖是以功能开头,内部的依赖是以功能为结尾.

第三步:创建数据库表

创建一个学生表tb_student

4.在application.yml连接数据库

5.创建Student实体类

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor  //有参构造器
@NoArgsConstructor   //无参构造器
@TableName("tb_student") //识别表名
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

6.在启动类上加入@MapperScan注解扫描到mapper文件

这个包名可以大一点没关系的,也能扫到mapper

 7.创建mapper包,创建mapper接口

 8.测试完成增删改查

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.mybatispulstest.demos.mapper.StudentMapper;
import com.example.mybatispulstest.demos.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;
@SpringBootTest
class MybatisPulsTestApplicationTests {
    @Autowired
    private StudentMapper studentMapper;
    /*
    * 查询所有
    * */
    @Test
    void contextLoads() {
        List<Student> students = studentMapper.selectList(null);
        students.forEach(System.out::println);
    }
    /*
    * id查询
    * */
    @Test
    void selectId(){
        Student student = studentMapper.selectById(2);
        System.out.println(student);
    }
    /*
    * 插入数据
    * */
    @Test
    void add(){
        Student student = new Student();
        student.setName("郭铁心");
        student.setId(null);
        student.setSex("男");
        student.setAge(50);
        studentMapper.insert(student);
    }

    /*
    * 更新表中数据
    * */
    @Test
    void update(){
        Student student = new Student();
        student.setName("黄七");
        student.setId(489365506);
        studentMapper.updateById(student);
    }
    /*
    *更具id删除数据
    * */
    @Test
    void delectId(){
        studentMapper.deleteById(3);
    }
    /*
    * 查询年龄大于等于18岁的数据
    * */
    @Test
    void selectAge(){
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.ge("age", 18);
        List<Student> students = studentMapper.selectList(wrapper);
        students.forEach(System.out::println);
    }

    /*
    * 查询年龄大于19,且性别是男的数据
    * */
    @Test
    void selectAgeAndSex(){
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.gt("age", 19).eq("sex", "男");
        List<Student> students = studentMapper.selectList(wrapper);
        students.forEach(System.out::println);
    }
    /*
    * 查找名字姓令,且年龄早1-40岁之间,且是男性的数据
    * */
    @Test
    void selectLike(){
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.like("name","令%").between("age",1,40).eq("sex","男");
        List<Student> students = studentMapper.selectList(wrapper);
        students.forEach(System.out::println);
    }
}

9.自动填充

创建时间、更新时间!这个操作是自动化完成的,不要手动更新!

gmt_create、gmt_modified几乎在所有表都要配置上,而且自动化填充。gmt是时间时间的意思

1.给数据库创建2个新的字段

2.实体类的成员变量上添加注解@TableField

@TableField(fill = FieldFill.INSERT)
private LocalDateTime gmt_create;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime gmt_modified;

3.编写处理器

@Slf4j //日志
@Component//以组件的形式把这个处理器注册到IOC容器中
public class MyMetaObjectHandler implements MetaObjectHandler {

    //插入时启动  第三个参数 LocalDateTime 一定要和 createTime成员变量的值的类型一致,不然是null 如果是date就都设置date
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        this.strictInsertFill(metaObject, "gmt_create", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
        this.strictUpdateFill(metaObject, "gmt_modified", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
    }

    //更新时候启动
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.strictUpdateFill(metaObject, "gmt_modified", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
    }
}

在添加数据和更新数据后面就会显示时间了.

 10.plus的原生方法

删除

 1.delete--条件删除

   @Test
    void delete(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("username","魏无羡");
        userMapper.delete(wrapper);
    }

 2.deleteBathIds--根据id批量删除

  @Test
    void deleteBathIds(){
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        userMapper.deleteBatchIds(list);
    }

3. deleteById--根据id删除单条数据

  @Test
    void deleteById(){
        userMapper.deleteById(123);
    }

 4.deleteByMap--根据条件删除

     @Test
    void  deleteByMap(){
        Map<String, Object> map = new HashMap<>();
        map.put("password","1234");
        userMapper.deleteByMap(map);
    }

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-plus 是一个 Mybatis 的增强工具,提供了很多方便的操作方法,可以使我们的开发效率更高、更简洁。下面是使用 Mybatis-plus 进行增删改查的示例: 1. 添加依赖 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2. 配置数据源 在 application.properties 文件中配置数据源信息: ```properties spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver ``` 3. 创建实体类 创建一个实体类,可以使用注解 @TableName 指定数据库表名,@TableId 指定主键字段。 ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; } ``` 4. 创建 Mapper 接口 创建一个 Mapper 接口,继承 BaseMapper 类,可以直接使用 Mybatis-plus 提供的方法,无需手写 SQL。 ```java @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 5. 使用 Mybatis-plus 进行增删改查 使用 Mybatis-plus 提供的方法进行增删改查操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void addUser(User user) { userMapper.insert(user); } @Override public void deleteUserById(Long id) { userMapper.deleteById(id); } @Override public void updateUser(User user) { userMapper.updateById(user); } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 以上就是使用 Mybatis-plus 进行增删改查的示例。当然,Mybatis-plus 还提供了其他很多方便的操作方法,可以根据具体需求进行使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值