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 );
} }

MyBatis Plus 2.3 个人笔记-03-Active Record的更多相关文章

  1. 《30天自制操作系统》笔记(03)——使用Vmware

    <30天自制操作系统>笔记(03)——使用Vmware 进度回顾 在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能:并且总结出下一步的OS开发结构.但是遇到了真机测 ...

  2. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试

    机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...

  4. CS229 笔记03

    CS229 笔记03 局部加权线性回归 Non-Parametric Learning Algorithm (非参数学习方法) Number of parameters grows with the ...

  5. OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓

    本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...

  6. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  7. C++ GUI Qt4学习笔记03

    C++ GUI Qt4学习笔记03   qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QM ...

  8. SaToken学习笔记-03

    SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...

  9. Redis:学习笔记-03

    Redis:学习笔记-03 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 7. Redis配置文件 启动 ...

  10. Java:并发笔记-03

    Java:并发笔记-03 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 3. 共享模型之管程-2 本章内容-2 Monitor wait/notify 3.6 ...

随机推荐

  1. 【C# IO 操作】使用StringWriter和StringReader的好处

    当你有一组应用程序接口(API)只允许用Writer或Reader作为输入,但你又想使用String,这时可以用StringWriter或StringReader. 假设有下面这样一个process方 ...

  2. Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联

    0.说明 QJsonDocument类提供了read/write JSON文档的方法. 用QJsonDocument::fromJson()方法,可以从将一个JSON文件(或者QByteArray数据 ...

  3. Pycharm:在Pycharm中使用控制台命令

    最下方跟Console同行的Terminal,其中输入指令就相当于在cmd命令行窗口输入指令

  4. VS Code nodejs智能补全typings

    安装typings node.js自动补全使用npm全局安装typings npm install -g typings -安装语法插件以安装node.js自动补全为例,在项目根目录下使用bash或者 ...

  5. LeetCode-046-全排列

    全排列 题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:http ...

  6. LeetCode-055-跳跃游戏

    跳跃游戏 题目描述:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个下标. 示例说明请见LeetCod ...

  7. mysql中MyISAM与InooDB存储引擎的区别

    MyISAM存储引擎特点 不支持事务 表级锁定 读写相互阻塞,写入不能读,读时不能写 只缓存索引 不支持外键约束 不支持聚簇索引 读取数据较快,占用资源较少 不支持MVCC(多版本并发控制机制)高并发 ...

  8. Python:pyglet学习(3):游戏循环

    在我们编游戏时,经常会用到一个无限循环,这就叫游戏循环. 先用@win.event试试 import pyglet as p win=p.window.Window(800,600) @win.eve ...

  9. think php 3种验证方式

    方式一:独立验证 // 验证1.独立验证 //验证的规则 $rule = [ 'name' => 'require|max:25', 'username' => 'require', 'p ...

  10. Vue-表单验证-全选-反选-删除-批量删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...