ActiveRecord简称AR技术

    技术2022-07-10  119

    一.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)范例

    三.源码

    mybatisplus.rar

    Processed: 0.010, SQL: 9