天天看点

MybatisPlus如何CRUD?

1.首先引入pom依赖

<!--mybatis-plus springboot依赖-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.1.1</version>
            </dependency>

            <!--简化Javabean开发的包依赖-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
                <version>1.18.4</version>
            </dependency>      

2.创建实体类对象User.java

/**
 * 帮我们生成了各种方法,简化了Javabean的开发
 */
@Data //lombok getter setter方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //全餐构造
@TableName("tb_user") //mybatisplus表名称
public class User {
    //设置自增长
    @TableId(type = IdType.AUTO)
    private Long id;
    private String userName;

    //查询时候,不返回这个字段的值
    @TableField(select = false)
    private String password;

    private String name;
    private Integer age;
    private String email;

    //正真的属性字段,但是数据库中没有这个字段
    @TableField(exist = false)
    private String address;

}      

3.创建UserMapper.java

@Mapper
public interface UserMapper extends BaseMapper<User> {}      

4.单元测试,所有的CRUD

@SpringBootTest
class SpringbootMybatisplusApplicationTests {

    @Autowired
    UserMapper userMapper;
    
    /*查询所有*/
    @Test
    void findAll() {
        List<User> users = userMapper.selectList(null);
        for(User user:users){
            System.out.println(user);
        }
    }

    /*插入测试*/
    @Test
    public void testInsert(){
        User user = new User();
        user.setName("王一宁");
        user.setPassword("123456");
        user.setUserName("吾皇万岁");
        user.setEmail("[email protected]");
        user.setAge(23);
        int result = userMapper.insert(user);
        System.out.println("受影响的行数"+result);
        //获取自增长的id  plus 回填user对象中
        System.out.println("id:"+user.getId());
    }

    /*测试更具id 查询*/
    @Test
    public void testSelectById(){
        User user = userMapper.selectById(1L);
        System.out.println(user);
        //User(id=1, userName=wang, password=null, name=王一宁, age=23, [email protected], address=null)
    }

    /*测试更新根据id*/
    @Test
    public void testUpdateById(){
        User user = new User();
        user.setId(1L);
        user.setAge(19);
        user.setEmail("110");
        userMapper.updateById(user);
    }

    /*根据条件更新*/
    @Test
    public void testUpdate(){
        User user = new User();
        user.setAge(19);
        user.setEmail("110");
        //设置条件
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("user_name","wang");
        userMapper.update(user,wrapper);
    }

    /*根据id删除*/
    @Test
    public void deleteById(){
        int i = userMapper.deleteById(2L);
        System.out.println(i);
    }

    /*吧多条件删除条件封装到Map中*/
    @Test
    public void deleteByMap(){
        Map<String,Object> map = new HashMap<>();
        map.put("user_name","wang");
        map.put("password","123456");
        userMapper.deleteByMap(map);
    }

    /*条件查询*/
    @Test
    public void delete(){
        //设置条件
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("user_name","wang").eq("password","123456");
        userMapper.delete(wrapper);
    }
}