zoukankan      html  css  js  c++  java
  • MyBatis Plus 2.3 个人笔记-03-Active Record

    AR 语法糖  是一种领域模型模式,特点就是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一条记录

    •   实现AR 【在代码生成器中可以添加配置】
    import com.baomidou.mybatisplus.activerecord.Model;
    import com.baomidou.mybatisplus.annotations.TableField;
    import java.io.Serializable;
    
    /**
     * <p>
     *  实现AR 实体类继承  Model 重写 pkVal() 返回主键
     * </p>
     *
     * @author youxiu326@163.com
     * @since 2019-02-17
     */
    @TableName("tbl_user")
    public class User extends Model<User> {
    
        @Override
        protected Serializable pkVal() {
            return this.id;
        }
    }
    
    • 方法其实是一样的,只不过执行的写法有些区别,看个人喜好 是否使用这种语法糖
    package com.huarui.mybatisplus;
    
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.baomidou.mybatisplus.plugins.Page;
    import com.huarui.mybatisplus.entity.Employee;
    import com.huarui.mybatisplus.mapper.EmployeeMapper;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import java.util.List;
    
    /**
     * AR 版CURD操作
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class TestAr {
    
        @Autowired
        private EmployeeMapper employeeMapper;
    
        /**
         * AR  分页复杂操作
         */
        @Test
        public void  testARPage() {
    
            Employee employee = new Employee();
    
            Page<Employee> page = employee.selectPage(new Page<>(1, 1),
                    new EntityWrapper<Employee>().like("last_name", "老"));
            List<Employee> emps = page.getRecords();
            System.out.println(emps);
        }
    
    
        /**
         * AR 删除操作
         *
         * 注意: 删除不存在的数据 逻辑上也是属于成功的.
         */
        @Test
        public void testARDelete() {
    
            Employee employee = new Employee();
            //boolean result = employee.deleteById(2);
    //		employee.setId(2);
    //		boolean result = employee.deleteById();
    //		System.out.println("result:" +result );
    
    
            boolean result = employee.delete(new EntityWrapper<Employee>().like("last_name", "小"));
            System.out.println(result );
        }
    
    
        /**
         * AR 查询操作
         */
        @Test
        public void testARSelect() {
            Employee employee = new Employee();
    
            //Employee result = employee.selectById(14);
    //		employee.setId(14);
    //		Employee result = employee.selectById();
    //		System.out.println(result );
    
    
    //		List<Employee> emps = employee.selectAll();
    //		System.out.println(emps);
    
    //		List<Employee > emps=
    //				employee.selectList(new EntityWrapper<Employee>().like("last_name", "老师"));
    //		System.out.println(emps);
    
            Integer result = employee.selectCount(new EntityWrapper<Employee>().eq("gender", 0));
            System.out.println("result: " +result );
    
    
    
        }
    
    
        /**
         * AR 修改操作
         */
        @Test
        public void testARUpdate() {
            Employee employee = new Employee();
            employee.setId(20L);
            employee.setLastName("宋老湿");
            employee.setEmail("sls@atguigu.com");
            employee.setGender("1");
            employee.setAge(36);
    
    
            boolean result = employee.updateById();
            System.out.println("result:" +result );
    
        }
    
    
    
        /**
         * AR  插入操作
         */
        @Test
        public void  testARInsert() {
            Employee employee = new Employee();
            employee.setLastName("李老师");
            employee.setEmail("youxiu326@163.com");
            employee.setGender("1");
            employee.setAge(35);
            employee.setId(1L);
    
            boolean result = employee.insert();
            System.out.println("result:" +result );
        }
    
    }
    
  • 相关阅读:
    BZOJ1877: [SDOI2009]晨跑
    SPFA的两个优化:SLF与LLL
    BZOJ1858: [Scoi2010]序列操作
    java线程基础巩固---如何捕获线程运行期间的异常
    java线程基础巩固---如何给你的应用程序注入钩子程序
    类的命名空间与卸载详解及jvisualvm使用
    okhttp拦截器之RetryAndFollowUpInterceptor&BridgeInterceptor分析
    okhttp初识拦截器
    类加载器双亲委托机制实例深度剖析
    类加载器重要方法详解
  • 原文地址:https://www.cnblogs.com/youxiu326/p/mybatisPlus-03.html
Copyright © 2011-2022 走看看