ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作。
ActiveRecord的主要思想是:
- 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
- ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;
- ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
要想使用AR很简单
1. 实体对象继承Model
package cn.itcast.mp.simple.pojo;
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;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User extends Model<User> {
@TableId(value = "id", type = IdType.AUTO) //指定id类型为自增长
private Long id;
private String userName;
private String password;
private String name;
private Integer age;
@TableField(value = "email") //解决字段名不一致
private String email;
}
2. CRUD操作
根据主键查询
import cn.itcast.mp.simple.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class TestMR {
/**
* 根据主键查询
*/
@Test
public void testAR1(){
User user = new User();
user.setId(2l);
User user1 = user.selectById();
System.out.println(user1);
}
}
新增数据
/**
* 新增数据
*/
@Test
public void testAR2(){
User user = new User();
user.setName("leo");
user.setAge(24);
user.setPassword("123223456");
user.setUserName("leohams");
user.setEmail("fsfsfs@qq.com");
boolean insert = user.insert();
System.out.println(insert);
}
更新操作
/**
* 更新操作
*/
@Test
public void testAR3(){
User user = new User();
user.setId(6l);
user.setAge(25);
boolean update = user.updateById();
System.out.println(update);
}
删除操作
/**
* 删除操作
*/
@Test
public void testAR4(){
User user = new User();
user.setId(1l);
boolean delete = user.deleteById();
System.out.println(delete);
}
根据条件查询
@Test
public void testAR5(){
User user = new User();
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.gt("age", 22);
List<User> users = user.selectList(wrapper);
for (User user1 : users) {
System.out.println(user1);
}
}