MybatisPlus的AR操作

Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

ActiveRecord 一直广受动态语言(PHP、Ruby等)的喜爱,而lava作为准静态语言,对于ActiveRecord 往往只能感叹其优雅,所以MP也在AR 道路上进行了一定的探索。

Maven:

<!-- mybatisPlus -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>2.3</version>
		</dependency>

开启AR模式的方法很简单,就是让我们的实体类继承Model类,并实现其抽象方法,指定主键即可,如下:

/**
 * javaBean
 *
 * 定义JavaBean中的成员变量所使用的类型:都是包装类型
 * 因为每个基本数据类型都有一个默认值
 * int ==> 0
 * boolean ==> false
 *
 * @author xiaofei
 */
@Data
@TableName(value = "tbl_employee")
public class Employee extends Model<Employee> {

    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    @TableField
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;

    /**
     * 通过exit设置当前字段不存在数据库里面
     */
    @TableField(exist = false)
    private Double salary;

    /**
     * 指定当前实体类的 主键属性
     * @return
     */
    @Override
    protected Serializable pkVal() {
        return id;
    }

}

测试:

/**
 * 测试AR
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootMybatisplusARTests {

    /**
     * 添加
     */
    @Test
    public void insertAR() {
        Employee employee = new Employee();
        employee.setLastName("AR");
        employee.setEmail("ar@xiaofei.com");
        employee.setGender(1);
        employee.setAge(22);

        boolean insert = employee.insert();
        System.err.println(insert);
        System.err.println(employee.getId());
    }

    /**
     * 修改
     */
    @Test
    public void updateAR() {
        Employee employee = new Employee();
        employee.setId(10);
        employee.setGender(0);
        employee.setAge(0);
        boolean b = employee.updateById();
        System.err.println(b);
    }

    /**
     * 查询
     */
    @Test
    public void selectAR() {
        // 根据Id查询
        Employee employee = new Employee();
        Employee employee1 = employee.selectById(1);
        // System.err.println(employee1);

        // 查询全部
        List<Employee> employeesAll = employee.selectAll();
        // System.err.println(employeesAll);

        // 查询名字带有M的
        List<Employee> employees = employee.selectList(new EntityWrapper().like("last_name", "M"));
        // System.err.println(employees);

        // 查询总数量
        int count = employee.selectCount(null);
        // System.err.println(count);

        // 分页
        Page<Employee> page = employee.selectPage(
                new Page<Employee>(1, 2), null);
        System.err.println(page);
        /**
         *  Page:{ [Pagination { total=0 ,size=2 ,pages=0 ,current=1 }], records-size:2 }
         */
        List<Employee> emps = page.getRecords();
        System.err.println("数据:" + emps);
    }

    /**
     * 删除
     * <p>
     * 注意:删除不存在的数据在逻辑上也是成功的;
     */
    @Test
    public void deleteAR() {
        Employee employee = new Employee();
        boolean b = employee.deleteById(10);
        System.err.println(b);
    }

}

注意点:
删除不存在的数据在逻辑上也是成功的;

AR总结:
1、AR 模式提供了一种更加便捷的方式实现CRUD操作,其本质还是调用的Mybatis对应的方法,类似于语法糖。

2、到此,我们简单领略了Mybatis-Plus的魅力与高效率,值得注意的一点是:我们提供了强大的代码生成器,可以快速生成各类代码,真正的做到了即开即用。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值