MybatisPlus的原理及MybatisPlus的增删改查

MybatisPlus的原理及MybatisPlus的增删改查

1.MybatisPlus的原理

**核心:以对象的方式去操作数据库
	例子:自己去编写userMapper.insert/delete/select(user对象);**

2使用mp的准备工作

2.1导入jar包依赖(注:若使用mp时,在导入mp的jar包后需将之间的Mybatis的jar包删除)

<!--spring整合mybatis-plus -->
	<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>3.2.0</version>
</dependency>

2.2编辑user POJO对象

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

2.3UserMapper继承公共的Mapper几口

public interface UserMapper extends BaseMapper<user>{
	List<User> findAll();
}

2.4配置YML配置文件

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

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

3.在这里插入代码片MP的CRUD的test

@SpringBootTest
public class TestMybatis {
    @Autowired
    private UserMapper userMapper;
	
    @Test
    public void test01() {
        List<User> users = userMapper.findAll();
        System.out.println(users);
    }

3.1 Update

  	/**
     * 9.需求:根据id值进行修改,把id值为49的name属性修改为"王鼎" 年龄25 性别为女
     */
    @Test
    public void update01(){
        User user=new User();
        user.setId(49).setName("王鼎").setAge(25).setSex("女");
        int row=userMapper.updateById(user);
        System.out.println(row);
    }

    /**
     * 10.需求:根据姓名去修改这条数据的属性
     */
    @Test
    public void update02(){
        UpdateWrapper<User> userUpdate=new UpdateWrapper<>();
        userUpdate.eq("name","蒋俊超");
        User user=new User();
        user.setAge(360).setSex("奥特曼");
        int row = userMapper.update(user,userUpdate);
        System.out.println("成功修改行数:"+row);
    }

3.2 Delete

	/** 7.根据需求删除id值为50的用户
     */
    @Test
    public void delete01(){
        User user = new User();
        userMapper.deleteById(50);
        System.out.println("已删除");
    }

    /** 8.需求:根据id值批量删除
     */
    @Test
    public void delete02(){
        List<Integer> userList=new ArrayList<Integer>();
        userList.add(8);
        userList.add(9);
        int rows = userMapper.deleteBatchIds(userList);
        System.out.println("已成功删除数据:"+rows);
    }
    
	/**	根据条件删除数
     * 11.需求:删除满足条件的数据(delete>deleteMap deleteMap具有一定的局限性,他的条件必须是固定的)
     *      如:删除性别是女并且年龄大于19的数据
     */
    @Test
    public void delete03(){
        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        //queryWrapper.eq("sex","男");
        queryWrapper.eq("sex","女").gt("age",19); // 删除条件为性别是男,年龄大于26的所有的数据
        int row = userMapper.delete(queryWrapper);
        System.out.println("已删除"+row);
    }

    /**
     * 12.需求;删除满足条件的数据(根据map里的属性找到对应的数据进行删除)
     */
    @Test
    public void delete04(){
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("age",30);
        map.put("sex","男");
        int row =userMapper.deleteByMap(map);
        System.out.println("已删除的数据:"+row);
    }

3.3 select

    /**
     * 2.测试查询
     * 查询id为21的用户
     */
    @Test
    public void select01() {
        User user = userMapper.selectById(21);
        System.out.println(user.getAge());

        //查询总记录数
        int count = userMapper.selectCount(null);
        System.out.println(count);
    }

    /**
     * 3.查询性别为女 年龄大于100
     * 条件构造器:动态拼接where条件
     * 常用逻辑运算符(mp):
     * eq:=     gt:>    lt:<
     * ge:>=    le:<=
     */
    @Test
    public void select02() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("sex", "女")
                .gt("age", "100");
        List<User> userList = userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

    /**
     * 4.查询名称中包含"精"字的男性妖怪
     */
    @Test
    public void select03() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.likeLeft("name", "精").eq("sex", "男");
        //queryWrapper.like("name", "精").eq("sex", "男");
        List<User> userList = userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

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

    /**
     * 6.需求:查询id为1 3 5 7 8 9的需求
     */
    @Test
    public void select05() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.in("id",1,3,5,7,8,9);
        List<User> userList = userMapper.selectList(queryWrapper);
        System.out.println(userList);
    }

3.4 insert

    /**
     * 1.测试入库
     * 用户信息 王大锤 20 男
     */
    @Test
    public void insert() {
        User user = new User();
        user.setName("王大锤").setAge(20).setSex("男");
        userMapper.insert(user);
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值