JPA
Spring-Data JPA
概念
由spring提供的简化JPA开发的框架
作用
可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据库的访问和操作。
除了CURD外,还包括分页、排序等常用功能。
核心jar包
- spring-data-commons 1.13.0.RELEASE
- spring-data-jpa 1.11.0.RELEASE
- hibernate-entitymanager 5.2.6.Final
- hibernate-jpa-2.1-api 1.0.0.Final
核心接口
- Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。
- CrudRepository:是Repository的子接口,提供CRUD的功能
- PaginAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能
- JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。
- JpaSpecificationExecutor:用来做负责查询的接口
- Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可
maven开发环境配置
<!--依赖Spring 4.3.6之core、context、aop、beans、tx、orm和spring data commons-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.0.RELEASE</version>
</dependency>
<!--hibernate 实现JPA的框架-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.5.Final</version>
</dependency>
<!-- 数据源与MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
<!-- Spring测试框架 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
spring-jpa配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:repository="http://www.springframework.org/schema/data/repository"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd">
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.qfxa.service"/>
<context:component-scan base-package="com.qfxa.dao"/>
<!-- 数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- jpa实现框架 -->
<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="showSql" value="true"/>
</bean>
<!-- spring-data-jpa配置 本地容器实体管理工厂对象,并指定POJO类 -->
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" value="com.qfxa.po"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<bean id="jpaTx" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf"/>
</bean>
<!-- 设置自动注解事务驱动 -->
<tx:annotation-driven proxy-target-class="false" transaction-manager="jpaTx"/>
<!-- 启动仓库扫描 -->
<jpa:repositories base-package="com.qfxa.dao"
entity-manager-factory-ref="emf"
transaction-manager-ref="jpaTx"/>
</beans>
JPA简介
JPA(java persistence api)是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,
JPA的设计者是hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,
Oracle的Weblogic使用EclipseLink(TopLink)作为默认的JPA实现,
IBM的Websphere和Sun的Glassfish默认使用OpenJPA(Apache)作为其默认的JPA实现。
JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,
因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,
通过面向对象编程的思想操作关系型数据库的规范。
JPA的优势
- 标准化
- 对容器及特性的支持
- 简单易用,集成方便
- 可媲美JDBC的查询能力
- 支持面向对象的高级特性
实体bean的开发
-
在实体bean上添加”@Entity”注解,标识该bean为实体bean。
-
实体bean必须序列化。
-
使用”@Table(name=数据库表名)”注解,标识该实体bean映射到关系型数据库中的表名,如果不指定则JPA实现会自动生成默认的表名称。
-
必须有一个使用”@Id”注解标识的主键 如指定自增主键的写法为:
@Id
@Column(name=”列名”)
@GeneratedValue(Strategy=GenerationType.Auto)
private int id;
注意:@Id和@GeneratedValue两个注解必须同时使用,标识了注解之后,要主键的生成策略。
-
Bean的其他属性使用”@Column(name=列名)”注解,指定该属性映射到数据库表中的列名,如果不指定在JPA实现会自动生成默认的列名。
-
实体Bean必须严格遵循JavaBean的规范,提供无参的默认构造方法,属性提供set和get方法。
-
最好重写hashcode()和equals()方法,实体bean的唯一标识是主键,因此,使用实体bean的主键来比较。
JPA查询方法规则
- findAll()查询所有
- findByXXX(Object xxx) 根据属性名等值查询
- findByXXXAndYYY(Object xxx,Object yyy) 同时满足两个属性名与属性相同的查询
- findByXXXOrYYY(Object xxx,Object yyy) 只要满足两个属性名与属性相同的任一条查询
Spring的单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-jpa.xml")
public class TestUser {
@Autowired
UserService userService;
public void add() {
User u = new User();
u.setNickname("didi");
u.setUsername("disen888");
u.setPassword("123");
u.setPhone("1234444444");
u.setSex("女");
u.setCreateTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
userService.add(u);
System.out.println("添加成功 : "+u.getId());
}
public void query() {
List<User> list = userService.getList();
for(User u:list) {
System.out.println(u.getNickname()+","+u.getPhone()+","+u.getCreateTime());
if(u.getNickname().equals("disen-Di")) {
u.setSex("女");
u.setPhone("029-88765312");
userService.update(u);
}
}
}
}
JPA与Spring-Boot的整合
第一步建立项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OihJfJTg-1665405612717)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665401555479.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rfrffukr-1665405612718)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665401636530.png)]
第二步添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.qyb</groupId>
<artifactId>day67JPA-SpringBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>day67JPA-SpringBoot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</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>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
第三步配置yml文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/mi?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 123
jpa:
database: mysql
show-sql: true
hibernate:
ddl-auto: validate
properties:
hibernate:
format_sql: true
第四步写pojo dao service
pojo
@Entity
@Data
public class Dept {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String dep_name;
private String addr;
}
dao
public interface IDeptDao extends JpaRepository<Dept,Integer> {
}
service
public interface IDeptService {
List<Dept> getAllDept();
}
serviceimpl
@Service
public class IDeptServiceImpl implements IDeptService {
@Autowired
private IDeptDao idd;
@Override
public List<Dept> getAllDept() {
return idd.findAll();
}
}
第五步controller层的编写
@RestController
@RequestMapping("dept")
public class DeptController {
@Autowired
private IDeptService ids;
@GetMapping("all")
public List<Dept> getAllDept(){
return ids.getAllDept();
}
}
第六步执行后在前端查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PBoLN9hh-1665405612719)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665405429443.png)]
测试类的写法如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDeptService {
@Autowired
private IDeptService ids;
@Test
public void TestDeptGetAll(){
List<Dept> allDept = ids.getAllDept();
for (Dept dept : allDept) {
System.out.println(dept);
}
}
}
JPA
Spring-Data JPA
概念
由spring提供的简化JPA开发的框架
作用
可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据库的访问和操作。
除了CURD外,还包括分页、排序等常用功能。
核心jar包
- spring-data-commons 1.13.0.RELEASE
- spring-data-jpa 1.11.0.RELEASE
- hibernate-entitymanager 5.2.6.Final
- hibernate-jpa-2.1-api 1.0.0.Final
核心接口
- Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。
- CrudRepository:是Repository的子接口,提供CRUD的功能
- PaginAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能
- JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。
- JpaSpecificationExecutor:用来做负责查询的接口
- Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可
maven开发环境配置
<!--依赖Spring 4.3.6之core、context、aop、beans、tx、orm和spring data commons-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.0.RELEASE</version>
</dependency>
<!--hibernate 实现JPA的框架-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.5.Final</version>
</dependency>
<!-- 数据源与MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
<!-- Spring测试框架 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
spring-jpa配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:repository="http://www.springframework.org/schema/data/repository"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd">
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.qfxa.service"/>
<context:component-scan base-package="com.qfxa.dao"/>
<!-- 数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- jpa实现框架 -->
<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="showSql" value="true"/>
</bean>
<!-- spring-data-jpa配置 本地容器实体管理工厂对象,并指定POJO类 -->
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" value="com.qfxa.po"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<bean id="jpaTx" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf"/>
</bean>
<!-- 设置自动注解事务驱动 -->
<tx:annotation-driven proxy-target-class="false" transaction-manager="jpaTx"/>
<!-- 启动仓库扫描 -->
<jpa:repositories base-package="com.qfxa.dao"
entity-manager-factory-ref="emf"
transaction-manager-ref="jpaTx"/>
</beans>
JPA简介
JPA(java persistence api)是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,
JPA的设计者是hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,
Oracle的Weblogic使用EclipseLink(TopLink)作为默认的JPA实现,
IBM的Websphere和Sun的Glassfish默认使用OpenJPA(Apache)作为其默认的JPA实现。
JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,
因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,
通过面向对象编程的思想操作关系型数据库的规范。
JPA的优势
- 标准化
- 对容器及特性的支持
- 简单易用,集成方便
- 可媲美JDBC的查询能力
- 支持面向对象的高级特性
实体bean的开发
-
在实体bean上添加”@Entity”注解,标识该bean为实体bean。
-
实体bean必须序列化。
-
使用”@Table(name=数据库表名)”注解,标识该实体bean映射到关系型数据库中的表名,如果不指定则JPA实现会自动生成默认的表名称。
-
必须有一个使用”@Id”注解标识的主键 如指定自增主键的写法为:
@Id
@Column(name=”列名”)
@GeneratedValue(Strategy=GenerationType.Auto)
private int id;
注意:@Id和@GeneratedValue两个注解必须同时使用,标识了注解之后,要主键的生成策略。
-
Bean的其他属性使用”@Column(name=列名)”注解,指定该属性映射到数据库表中的列名,如果不指定在JPA实现会自动生成默认的列名。
-
实体Bean必须严格遵循JavaBean的规范,提供无参的默认构造方法,属性提供set和get方法。
-
最好重写hashcode()和equals()方法,实体bean的唯一标识是主键,因此,使用实体bean的主键来比较。
JPA查询方法规则
- findAll()查询所有
- findByXXX(Object xxx) 根据属性名等值查询
- findByXXXAndYYY(Object xxx,Object yyy) 同时满足两个属性名与属性相同的查询
- findByXXXOrYYY(Object xxx,Object yyy) 只要满足两个属性名与属性相同的任一条查询
Spring的单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-jpa.xml")
public class TestUser {
@Autowired
UserService userService;
public void add() {
User u = new User();
u.setNickname("didi");
u.setUsername("disen888");
u.setPassword("123");
u.setPhone("1234444444");
u.setSex("女");
u.setCreateTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
userService.add(u);
System.out.println("添加成功 : "+u.getId());
}
public void query() {
List<User> list = userService.getList();
for(User u:list) {
System.out.println(u.getNickname()+","+u.getPhone()+","+u.getCreateTime());
if(u.getNickname().equals("disen-Di")) {
u.setSex("女");
u.setPhone("029-88765312");
userService.update(u);
}
}
}
}
JPA与Spring-Boot的整合
第一步建立项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfUXDEzb-1665405613879)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665401555479.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gwrUMOfu-1665405613879)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665401636530.png)]
第二步添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.qyb</groupId>
<artifactId>day67JPA-SpringBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>day67JPA-SpringBoot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</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>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
第三步配置yml文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/mi?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 123
jpa:
database: mysql
show-sql: true
hibernate:
ddl-auto: validate
properties:
hibernate:
format_sql: true
第四步写pojo dao service
pojo
@Entity
@Data
public class Dept {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String dep_name;
private String addr;
}
dao
public interface IDeptDao extends JpaRepository<Dept,Integer> {
}
service
public interface IDeptService {
List<Dept> getAllDept();
}
serviceimpl
@Service
public class IDeptServiceImpl implements IDeptService {
@Autowired
private IDeptDao idd;
@Override
public List<Dept> getAllDept() {
return idd.findAll();
}
}
第五步controller层的编写
@RestController
@RequestMapping("dept")
public class DeptController {
@Autowired
private IDeptService ids;
@GetMapping("all")
public List<Dept> getAllDept(){
return ids.getAllDept();
}
}
第六步执行后在前端查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKQNlig2-1665405613880)(C:\Users\橘子\AppData\Roaming\Typora\typora-user-images\1665405429443.png)]
测试类的写法如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDeptService {
@Autowired
private IDeptService ids;
@Test
public void TestDeptGetAll(){
List<Dept> allDept = ids.getAllDept();
for (Dept dept : allDept) {
System.out.println(dept);
}
}
}