MybatisPlus — ActiveRecord(活動記錄)
>> 上一篇我們講到MybatisPlus中使用條件構造器—EntityWrapperMybatis Plus — 條件構造器
>> 這一篇主要來介紹MybatisPlus中使用ActiveRecord(活動記錄)
了解:
- Active Record(活動記錄),是一種領域模型模式,特點是一個模型類對應關系型資料庫中的 一個表,而模型類的一個執行個體對應表中的一行記錄。
- ActiveRecord 一直廣受動态語言( PHP 、 Ruby 等)的喜愛,而 Java 作為準靜态語言, 對于 ActiveRecord 往往隻能感歎其優雅,是以 MP 也在 AR 道路上進行了一定的探索
使用AR模式
-
1)僅僅需要讓實體類繼承 Model 類且實作主鍵指定方法
AR 基本 CRUD
-
1) 插入操作
public boolean insert()/** * AR 插入操作 */ @Test public void testARInsert() { Employee employee = new Employee(); employee.setLastName("ccc"); employee.setEmail("[email protected]"); employee.setGender(1); boolean result = employee.insert(); //直接通過執行個體調用方法 System.out.println("result:" +result ); }
-
2)修改操作
public boolean updateById()/** * AR 修改操作 */ @Test public void testARUpdate() { Employee employee = new Employee(); employee.setId(2); employee.setLastName("tom"); employee.setEmail("[email protected]"); employee.setGender(1); boolean result = employee.updateById(); System.out.println("result:" +result ); }
-
3)删除操作
public boolean deleteById()
public boolean deleteById(Serializable id)
public boolean delete(Wrapper wrapper)
/** * AR 删除操作 * * 注意: 删除不存在的資料 邏輯上也是屬于成功的. */ @Test public void testARDelete() { Employee employee = new Employee(); boolean result = employee.deleteById(2); System.out.println(result); employee.setId(2); boolean result1 = employee.deleteById(); System.out.println(result1); boolean result2 = employee.delete(new EntityWrapper<Employee>().like("last_name", "c")); System.out.println(result2); }
-
4)查詢操作
public T selectById()
public T selectById(Serializable id)
public List selectAll()
public List selectList(Wrapper wrapper)
public int selectCount(Wrapper wrapper)
/** * AR 查詢操作 */ @Test public void testARSelect() { Employee employee = new Employee(); Employee result1 = employee.selectById(14); System.out.println(result1); employee.setId(2); Employee result = employee.selectById(); System.out.println(result); List<Employee> emps = employee.selectAll(); System.out.println(emps); List<Employee > employees= employee.selectList(new EntityWrapper<Employee>().like("last_name", "c")); System.out.println(employees); Integer result2 = employee.selectCount(new EntityWrapper<Employee>().eq("gender", 0)); System.out.println("result: " +result2); }
-
5)分頁複雜操作
public Page selectPage(Page page, Wrapper wrapper)/** * AR 分頁複雜操作 */ @Test public void testARPage() { Employee employee = new Employee(); Page<Employee> page = employee.selectPage(new Page<Employee>(1, 1), new EntityWrapper<Employee>().like("last_name", "c")); List<Employee> emps = page.getRecords(); System.out.println(emps); }