您现在的位置是:首页 > 正文

Mybatis-Plus之AR模式开启

2024-02-29 14:50:03阅读 1

一、简介(ActiveRecord)

这是一种领域模型模式,特点是一个模型类对应关系型数据库中的 一个表,而模型类的一个实例对应表中的一行记录。
ActiveRecord 一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言, 对于 ActiveRecord 往往只能感叹其优雅,所以 MP 也在 AR 道路上进行了一定的探索

二、实现方式(实例)

1、实体类继承 Model 类且实现主键指定方法

public class User extends Model<User>{


	private Integer id;
	private String name;
	private int age;
	private int gender;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getGender() {
		return gender;
	}

	public void setGender(int gender) {
		this.gender = gender;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + ", gender=" + gender + "]";
	}

	public User() {
		super();
		// TODO Auto-generated constructor stub
	}

	public User(String name, int age, int gender) {
		super();
       
		this.name = name;
		this.age = age;
		this.gender = gender;
	}

	//指定对应的主键
	@Override
	protected Serializable pkVal() {
		// TODO Auto-generated method stub
		return this.id;
	}

}

基本CRUD操作

1) 插入操作
public boolean insert()

@Test
	public void TestARUser()
	{	
		User user = new User("ged",32,1);
		boolean b = user.insert();
		System.out.println(b);
		
	}

2) 修改操作
public boolean updateById()

@Test
	public void TestARUser()
	{	
		
		boolean b = user.updateById();
		System.out.println(b);
		
	}

3) 查询操作

public T selectById()
public T selectById(Serializable id)
public List selectAll() public List selectList(Wrapper wrapper)
public int selectCount(Wrapper wrapper)

4) 删除操作

public boolean deleteById()
public boolean deleteById(Serializable id)
public boolean delete(Wrapper wrapper)

5) 分页复杂操作

public Page selectPage(Page page, Wrapper wrapper)

三、总结

这种模式为我们提供了一种更加快捷的方式去实现简单的CRUD操作,本质仍是调用基本的mybatis对应的属性方法,十分的便捷,供给开发者使用,可以避免出错的几率,提高代码的可读性,大大的节省了时间成本

网站文章

  • 二分篇-BM22 比较版本号

    【代码】二分篇-BM22 比较版本号。

    2024-02-29 14:49:54
  • ConcurrentHashMap原理

    ConcurrentHashMap原理

    我们都知道Hashmap是线程不安全的,在多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMapHashTable和HashM...

    2024-02-29 14:49:26
  • 重学ES6 async

    含义async函数,使得异步变得更方便。async函数是什么?一句话就是 Generator的语法糖。用 Generator 依次读取两个文件var fs = require('fs')var readFile = functiton(filename) { return new Promise(function (resolve,reject) { fs.read...

    2024-02-29 14:49:18
  • MyBatis实现模糊查询

    MyBatis实现模糊查询

    今天我们来学习mybatis实现模糊查询1.第一种方式第一种方式:在java程序中,把like的内容组装好,把这个内容传入到sql语句我们先在dao接口中定义一个方法//like的第一种方式List<...

    2024-02-29 14:49:11
  • stm32f407时钟配置方法

    这里我们写一个RCC配置函数来说明各函数的用途,其中HSE = 8MHz。 /** * @说明 配置STM32F407的时钟系统 * @参数 无 * @返回 无 * @说明 void Clock_Config(void) 按如下表格配置时钟 * *===================================

    2024-02-29 14:48:43
  • activities工作流入门笔记-002-1-建表

    1.activities工作流入门(1).建表(使用默认配置文件,简化代码)  使用默认配置 配置文件名称:activiti-context.xml 或者activiti.cfg.xml放根目录。&l...

    2024-02-29 14:48:35
  • android源码学习——Bind学习梳理

    Bind学习参照以下路子走1、先会用掌握如何使用AIDL会写基于Binder的C/S架构服务2、主要流程了解注册服务、获取服务流程掌握启动、获取Service Manager3、回归应用,明白framework层Bind接口4、深入了解Bind驱动5、能够对各个主要流程画出流程图、甚至深入源码...

    2024-02-29 14:48:30
  • overridePendingTransition(0,0);8.0手机屏幕闪一下,黑屏一下

    经常在做搜索时一般都是新跳一个界面,但是又不想让用户感觉到,都会去掉activity的跳转动画,在8.0一下直接在跳转和finish()的地方加上overridePendingTransition(0...

    2024-02-29 14:48:02
  • Python 爬虫:Header 的设置

    Python 爬虫:Header 的设置

    在编写爬虫的过程中,有些网站会设置反爬机制,对不是来源于浏览器的访问进行拒绝,此时我们会收到 403 错误响应码,或者收到“抱歉,无法访问“等字眼,这就需要在爬虫程序中修改请求的 headers 伪装浏览器访问,从而绕开网站的反爬机制获取正确的页面。

    2024-02-29 14:47:54
  • 如何通过一条数字人三维动画宣传片,打造出数字文旅

    如何通过一条数字人三维动画宣传片,打造出数字文旅

    在文旅行业中,数字人三维动画宣传片可以提供差异化、个性化的视觉体验,让文旅通过数字人实现多渠道、多元化文旅宣传。

    2024-02-29 14:47:46