ActiveRecord简称AR技术
程序员文章站
2022-03-26 16:51:41
...
一.ActiveRecord的概述
ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段
在类中都有相应的Field;
ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;
ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
二.ar基本应用
1.实体类
(1)代码块
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import static com.baomidou.mybatisplus.annotation.IdType.AUTO;
@Data
@NoArgsConstructor //空参构造方法
@AllArgsConstructor //全参构造方法
@TableName("tb_user") //测试全局表名前缀
public class User extends Model<User> implements Serializable {
@TableId(type=IdType.AUTO) //声明主键自增长
private Long id;
private String userName;
private String password;
@TableField(select = false) //查询时,则不返回该字段的值
private String name;
private Integer age;
@TableField(value = "email") //通过tableField进行字段不一致的映射
//数据库字段是email,而实体类对应的是mail
private String mail;
@TableField(exist = false) //设置该字段在数据库表中不存在
private String msg; //数据库中不存在该字段
}
(2)范例
2.添加数据
(1)代码块
@Test
/**
* 测试AR技术添加数据
*/
public void test2(){
//创建一个user对象
User user = new User();
user.setUserName("wusong");
user.setPassword("123456");
user.setAge(22);
//根据实体类继承model,添加数据
boolean insert = user.insert();
System.out.println(insert);
}
(2)范例
3.更新数据
(1)代码块
@Test
/**
* 测试AR技术更新数据
*/
public void test3(){
//创建一个user对象
User user = new User();
user.setId(13L); //查询条件
user.setAge(30); //更新数据
//根据实体类继承model,实现根据id查询记录
boolean result = user.updateById();
System.out.println(result);
}
(2)范例
4.根据id查询数据
(1)代码块
@Test
/**
* 测试AR技术基本应用
*/
public void test1(){
//创建一个user对象
User user = new User();
user.setId(3L);
//根据实体类继承model,实现根据id查询记录
User user2 = user.selectById();
System.out.println(user2);
}
(2)范例
5.删除数据
(1)代码块
@Test
/**
* 测试AR技术删除数据
*/
public void test4(){
//创建一个user对象
User user = new User();
user.setId(14L); //查询条件
//根据实体类继承model,实现根据id查询记录
boolean result = user.deleteById();
System.out.println(result);
}
(2)范例
6.根据条件查询数据
(1)代码块
@Test
/**
* 测试AR技术根据条件进行查询数据
*/
public void test5(){
//创建一个user对象
User user = new User();
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("user_name","wangwu");
//根据实体类继承model,实现根据id查询记录
List<User> users = user.selectList(wrapper);
for (User user1 : users) {
System.out.println(user1);
}
}
(2)范例
三.源码
上一篇: springboot实现表单提交数据和上传文件或图片
下一篇: Wpf之无法获取鼠标点击事件