MyBatisPlus--ActiveRecord

ActiveRecord

ActiveRecord(简称AR)也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型;表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简介易懂。

ActiveRecord的主要思想是:

  • 每一个数据库表对应创建一个类,类的每一个对象实例对英语数据库中表的一行记录;通常表的每个字段在类种都有相应的Field;
  • ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CRUD;
  • ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;

实例

在MyBatisPlus中,开启AR非常简单,只需要将实体对象集成Model<T>即可
User实体类:

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User extends Model<User> {

    //指定主键为自增
    @TableId(type = IdType.AUTO)
    private Long id;

    //指定数据表中字段名
    @TableField(value = "user_name")
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private String email;


    //指定该字段在表中是不存在的
    @TableField(exist = false)
    private String address;
}

Mapper:
AR底层依然是使用mapper来操作,所以mapper接口不可以省略:

public interface UserMapper extends BaseMapper<User> {
}

查询数据:selectById

@RunWith(SpringRunner.class)
@SpringBootTest
class ARTest {
   
   @Test
    public void testSelectByID(){
       User user = new User();
      User user1 = user.selectById(2l);
      System.out.println(user1);
   }
   
}

控制台打印:

User(id=2, userName=lisi, password=123456, name=李四, age=28, [email protected], address=null)

查询数据:selectList

@Test
   public void testSelectList(){
      User user = new User();
      QueryWrapper<User> wrapper = new QueryWrapper<>();
      wrapper.gt("age", "1");//查询条件:age大于1
      List<User> users = user.selectList(wrapper);
      for (User u : users)
         System.out.println(u);
   }

控制台打印:

User(id=2, userName=三狗, password=123456, name=李四, age=88, [email protected], address=null)
User(id=4, userName=zhaoliu, password=123456, name=赵六, age=48, [email protected], address=null)

新增数据:insert

	@Test
   public void testInsert(){
      User user = new User();
      user.setUserName("ergou");
      user.setName("二狗");
      user.setAge(18);
      user.setPassword("123456");

      boolean insert = user.insert();
      System.out.println(insert);
   }

在这里插入图片描述

更新数据:updateById

	@Test
   public void testUpdateById(){
      //根据id更新
      User user = new User();
      user.setId(2l);//更新条件
      user.setAge(88);//更新数据
      boolean result = user.updateById();
      System.out.println(result);
   }

在这里插入图片描述

更新数据:update

	@Test
   public void testUpdate(){
      User user = new User();
      //根据条件更新
      UpdateWrapper<User> wrapper = new UpdateWrapper<>();
      wrapper.set("user_name", "三狗");//更新数据
      wrapper.eq("age", "88");//更新条件
      boolean result = user.update(wrapper);
      System.out.println(result);
   }

在这里插入图片描述

删除数据:deleteById

	@Test
   public void testDeleteById(){
      User user = new User();
      user.setId(5L);
      boolean result = user.deleteById();
      System.out.println(result);
   }

在这里插入图片描述
也可以根据条件删除,使用方法和上面一致。

发布了750 篇原创文章 · 获赞 2115 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/cold___play/article/details/104272248