MyBatis -plus

本文介绍了ORM对象关系映射的概念,强调了MyBatis-Plus如何实现面向对象与数据交互,详细讲解了MyBatis-Plus(MP)中的CRUD操作,并特别提到了在MP中处理转义字符的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORM 

对象关系映射;以面向对象的方法与数据交互。

实体对象与表一 一映射 ,对象属性与表的字段一 一映射;

一行数据代表一个实体对象,即表是实体对象的集合,

@TableName("数据库中的表名")
public class 类名{
@TaleId(type = Idtype.AUTO)
//主键注解,主键自增
@TableFiled("字段名")
//字段注解
实体类的属性与数据库中的字段一致,可以省略

}
/@Mapper//管理接口对象,为接口对象创建反射机制一个对象
//代理对象
//BaseMapper<T>T表示MP要操作的表 泛型
public interface UserMapper extends BaseMapper<User> {
   List<User> findAll();//接口方法 ,
   @Insert("insert into demo_user(id,name,age,sex) values(null,#{name},#{age},#{sex})")
   void insertUser (User user);
   @Update("update demo_user set name = #{newName} where name = #{oldName}")
   void updateByName(String oldName, String newName);
   @Delete("delete from demo_user where name = #{name}")
   void deleteByName(String name);
}

MyBatis CRUD

  @Test
    public void insertUser(){
        User user = new User();
        user.setName("星期五").setAge(18).setSex("男");
        userMapper.insertUser(user);
        System.out.println("新增成功");
    }
    @Test
    public void updateUser(){
        String newName = "星期六";
        String oldName = "星期五";
        userMapper.updateByName(newName, oldName);
        System.out.println("修改成功");
    }
    @Test
    public void deleteUser(){
       String name = "星期六";
        userMapper.deleteByName(name);
        System.out.println("删除成功");
    }
    @Test
    public void testInserts(){
        User user = new User();
        user.setName("张三").setAge(21).setSex("男");
        userMapper.insertUser(user);
        System.out.println("成功");
    }
    @Test
    public void insertEmp(){
        Emp emp = new Emp();
        empMapper.insertEmp(emp);
    }
    @Test
    public void updateByName(){
        String oldName = "李四";
        String newName = "李伟";
        empMapper.updateByName(oldName,newName);
    }
    @Test
    public void deleteByName(){
        String name = "李伟";
        empMapper.deleteByName(name);
    }
    @Test
    public void selectAll(){
        List<Emp> emps = empMapper.selectAll();
        List<Emp> emps1 = empMapper.selectList(null);
        System.out.println(emps);
        System.out.println(emps1);
    }

MP中的转义字符

 @Test
    public void select03(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.gt("age" , 18)
                .or()//开启or
                .eq("sex", "男");
        User user = userMapper.selectById(queryWrapper);
        System.out.println(user);
    }
    /**查询name中 包含精 按年龄降序*/
    @Test
    public void select04(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//       queryWrapper.like("name", "精")
//               .orderByDesc("age");
        queryWrapper.likeRight("name", "精")
//                相当于精%  likeLeft("name","精");==精%
                .orderByDesc("age");
        User user = userMapper.selectById(queryWrapper);
        System.out.println(user);
    }
//    查询id 为 1,3,6,7
    @Test
    public void select05(){
        Integer[] ids = {1,3,6,7};
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.in("id",ids );
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }
//    查询name为null的数据
    @Test
    public void select06(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.isNull("name");
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }
//    condition boolean 类型 true 拼接,否则不拼接
    @Test
    public void select07(){
        Integer age = 18;
        String sex = null;
//        boolean flag =  sex != null && sex.length()>0;
        boolean flag = StringUtils.hasLength(sex);
//          等价于上面的   spring框架的API StringUtils.hasLength(sex);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.gt(age>0, "age", age).eq("sex", sex);
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }
    @Test
    public void selectTest(){
        Integer age = 18;
        String sex = null;
//        boolean flag =  sex != null && sex.length()>0;
        boolean flag = StringUtils.hasLength(sex);
//          等价于上面的   spring框架的API StringUtils.hasLength(sex);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.gt(age>0, "age", age).eq("sex", sex);
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }
//    只查询name,age字段信息
//    select挑选需要查询的信息
//    此时会返回所有数据,没查询的为null
    @Test
    public void select08(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("name","age");
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }
//    只查询name,age,
    @Test
    public void select09(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("name","age");
        List<Map<String, Object>> maps = userMapper.selectMaps(queryWrapper);
        System.out.println(maps);
    }
//    返回第一列的数据
//    包含条件需要使用条件构造器QueryWrapper封装
    @Test
    public void select10(){
        List<Object> objects = userMapper.selectObjs(null);
        System.out.println(objects);
    }
    @Test
    public void Update01(){
        User user = new User();
        user.setId(229).setName("六一儿童节");
        userMapper.updateById(user);
    }
//    参数说明, 1.实体对象 封装修改后的数据
    @Test
    public void Update02(){
        User user = new User();
        user.setName("端午节");
        UpdateWrapper updateWrapper = new UpdateWrapper();
        updateWrapper.eq("name", "六一儿童节"  );
        userMapper.update(user,updateWrapper);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值