这期内容当中小编将会给大家带来有关MyBatis-Plus中ActiveRecord(AR)如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
ActiveRecord 是什么:
每一个数据库表应该对应创建一个实体类,类的每一个对象的实例对应于数据库中表的一行记录; 通常表的每个字段在类中都有相应的方法Field;
ActiveRecord 负责把自己持久化. 在 ActiveRecord 中封装了对数据库的访问,通过对象自己实现 CRUD,实现优雅的数据库操作。
ActiveRecord 也封装了部分业务逻辑。可以作为业务对象使用。
首先创建一张表。
创建一个SpringBoot工程,在pom文件中添加依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.9</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
在核心配置文件中,配置数据库相关的连接信息。
#配置数据库的相关连接信息
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springdb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=12345678
#配置对应的日志信息
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
创建一个实体类,要使用AR,那么实体类就必须继承MP框架中的Model这个类。
package com.szh.mybatisplus.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
/**
* 使用AR,要求实体类必须继承MP框架中的Model类
* Model类中提供了数据库相关的CRUD操作
*/
public class Dept extends Model<Dept> {
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
private String name;
private String mobile;
private Integer manager;
//getter and setter
//toString
}
可以从Model类的源码中看到,这其中定义了大量关于CRUD操作的方法。
创建一个mapper接口。这里虽然不使用 mapper,但也需要定义这个它,MP 通过 mapper 获取到表的结构;不定义时,MP 报错无法获取表的结构信息。
package com.szh.mybatisplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.szh.mybatisplus.entity.Dept;
/**
*
*/
public interface DeptMapper extends BaseMapper<Dept> {
}
在SpringBoot项目的启动入口类上方,添加@MapperScan注解,确保可以扫描到MyBatis、MP下的相关注解。
package com.szh.mybatisplus;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(value = "com.szh.mybatisplus.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Test
void testDeptInsert() {
Dept dept=new Dept();
dept.setName("销售部");
dept.setMobile("12345678900");
dept.setManager(1);
//调用实体类对象自己的方法,完成对象自身到数据库的添加操作
boolean flag=dept.insert();
System.out.println("insert的结果:" + flag);
}
@Test
void testDeptUpdate() {
Dept dept=new Dept();
dept.setId(1);
dept.setName("研发部");
dept.setMobile("99999999999");
dept.setManager(2);
//调用实体类对象自己的方法,完成对象自身到数据库的更新操作
boolean flag=dept.updateById();
System.out.println("update的结果:" + flag);
}
@Test
void testDeptDelete() {
Dept dept=new Dept();
boolean result = dept.deleteById(2);
System.out.println("delete的结果:" + result);
}
@Test
void testDeptDelete2() {
Dept dept=new Dept();
dept.setId(2);
boolean result = dept.deleteById();
System.out.println("delete的结果:" + result);
}
@Test
void testSelect() {
Dept dept=new Dept();
dept.setId(3);
Dept dept1 = dept.selectById();
System.out.println("select的结果:" + dept1);
}
@Test
void testSelect2() {
Dept dept=new Dept();
Dept dept1 = dept.selectById(3);
System.out.println("select的结果:" + dept1);
}
@Test
void testSelect3() {
Dept dept=new Dept();
List<Dept> deptList=dept.selectAll();
deptList.forEach( dept1 -> {
System.out.println(dept1);
});
}
上述就是小编为大家分享的MyBatis-Plus中ActiveRecord(AR)如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。