MybatisPlus(MP)

以对象的方式操作数据库

需求分析

1.对象与数据库表如何映射?

利用注解实现对象与表绑定,属性与字段绑定

2.如何解决众多接口雷同的CURD操作

定义一个公共的Mapper接口,定义公共的CURD操作,利用泛型区分对象

3.如何将对象转换为sql

思想:按照特定的语法,将对象转发为sql语句

例子:将user对象插入数据库
userMapper.insert(user对象); //程序员的最后代码,具体的sql语句由框架生成
sql:insert into 表名(字段...)valuses(属性的值...);由MP动态拼接,最后交给mybatis执行

SpringBoot整合MybatisPlus

添加依赖


            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        

添加注解

@Data
@Accessors(chain = true)
@TableName("user") //实现表与对象的依赖 如果名称一致(忽略大小写)可以省略表名 @TableName
public class User implements Serializable {
    @TableId(type = IdType.AUTO)
    private Integer id; //主键,并且主键自增
    //@TableField(value = "name") //可以省略
    private String name;
    private  Integer age;
    private  String sex;
}

继承BaseMapper<>

MybatisPlus(MP)_第1张图片

修改yml配置文件

mybatis-plus:
  #定义别名包
  type-aliases-package: com.jt.pojo
  #添加.xml文件依赖
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

测试类调用

@Test
    public void test02(){
        List userList=userMapper.selectList(null);
        System.out.println(userList);
    }

MP API介绍

开放sql日志

# 配置数据库日志
logging:
  level:
    #打印哪个包下的日志信息
    com.jt.mapper: debug

insert操作

@Test
    public void insert(){
        User user = new User();
        user.setName("王大锤")
                .setAge(20)
                .setSex("男");
       userMapper.insert(user);
    }

select操作

基于id值查询

@Test
    public void select01(){
        //基于id值查询user信息
        User user=userMapper.selectById(21);
        System.out.println(user);
    }

count函数

@Test
    public void select01(){
        //查询总记录数
        int count=userMapper.selectCount(null);
        System.out.println(count);
    }

多条件查询

/**
     * 查询性别为(=)女 年龄大于100岁
     * 条件构造发:动态拼接where条件的,多条件中默认的连接符为and
     * 常见逻辑运算符:
     * 1.eq = 2. gt >   3. lt <  4. ge >=  5. le <=
     */
    @Test
    public void select02(){
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("sex","女")
                        .gt("age",100);
      List userList= userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

like模糊查询

 /**
     * 查询名字中包含“精”的男性
     * 查询以精结尾的 %精
     * 查询以精开头的 精%
     */
    @Test
    public void select03(){
        QueryWrapper queryWrapper = new QueryWrapper<>();
        /*queryWrapper.like("name","精")
                    .eq("sex","男");*/
        //queryWrapper.likeRight("name","精");
        queryWrapper.likeLeft("name","精");
        List userList= userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

order排序

/**
     * 查询性别为女,按照年龄倒序排序,如果年龄相同,按照id降序排序
     */
    @Test
    public void select04(){
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("sex","女")
                    .orderByDesc("age","id");
        List userList= userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

批量查询

/**
     * 查询id为1,3,4的数据
     */
    @Test
    public void select05(){
        Integer[] ids= {1,3,4};
        List idList = Arrays.asList(ids);
        List userList=userMapper.selectBatchIds(idList);
        System.out.println(userList);
    }

你可能感兴趣的:(springboot,java)