0
点赞
收藏
分享

微信扫一扫

SpringDataJpa框架单元测试实现增删改查

兮城 2022-06-01 阅读 79


目录

  • ​​使用工具​​
  • ​​使用说明​​
  • ​​使用maven的pom.xml文件​​
  • ​​环境搭建​​
  • ​​代码示例​​
  • ​​java目录​​
  • ​​Student.java​​
  • ​​IStuDao.java​​
  • ​​IStudentDao.java​​
  • ​​App.java​​
  • ​​resources目录​​
  • ​​application.yml​​
  • ​​test目录​​
  • ​​AppTest.java​​


使用工具

IDEA2018.2 MySQL5.6 JDK1.8

使用说明

需要在数据库中创建一个数据库,无需创建数据库表
SpringDtataJpa自动生成数据表

使用maven的pom.xml文件

<?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 http://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.1.7.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.ming</groupId>
  <artifactId>springbootjpatest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>springbootjpatest</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-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
</dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

环境搭建

SpringDataJpa框架单元测试实现增删改查_数据库
SpringDataJpa框架单元测试实现增删改查_数据库_02

代码示例

java目录

Student.java

package&nbsp;com.vvcat.gitee.bean;

import&nbsp;javax.persistence.*;

@Entity
@Table(name&nbsp;=&nbsp;&quot;student&quot;)//数据库表明
public&nbsp;class&nbsp;Student&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;@Id//声明id为主键
&nbsp;&nbsp;&nbsp;&nbsp;@GeneratedValue(strategy&nbsp;=&nbsp;GenerationType.IDENTITY)//声明自动增长
&nbsp;&nbsp;&nbsp;&nbsp;@Column(name&nbsp;=&nbsp;&quot;id&quot;)//声明数据库对应的字段
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;id;
&nbsp;&nbsp;&nbsp;&nbsp;@Column(name&nbsp;=&nbsp;&quot;stuName&quot;)//声明数据库对应的字段
&nbsp;&nbsp;&nbsp;&nbsp;//定义字段也是有讲究的,比如首字母小写,后边的驼峰,对应的数据库字段,遇到驼峰用下划线断开
&nbsp;&nbsp;&nbsp;&nbsp;//比如实体类定义的userName,则数据库字段为user_name,
&nbsp;&nbsp;&nbsp;&nbsp;//比如实体类定义的username,则数据库字段也为username
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;stu_name;

&nbsp;&nbsp;&nbsp;&nbsp;@Column(name&nbsp;=&nbsp;&quot;age&quot;)//声明数据库对应的字段
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;age;

&nbsp;&nbsp;&nbsp;&nbsp;@Column(name&nbsp;=&nbsp;&quot;sex&quot;)//声明数据库对应的字段
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;sex;

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getId()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getStu_name()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;stu_name;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setStu_name(String&nbsp;stu_name)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.stu_name&nbsp;=&nbsp;stu_name;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getAge()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;age;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setAge(Integer&nbsp;age)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.age&nbsp;=&nbsp;age;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getSex()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sex;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setSex(String&nbsp;sex)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.sex&nbsp;=&nbsp;sex;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;@Override
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;toString()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&quot;Student{&quot;&nbsp;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;id=&quot;&nbsp;+&nbsp;id&nbsp;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;,&nbsp;stu_name=&#39;&quot;&nbsp;+&nbsp;stu_name&nbsp;+&nbsp;&#39;\&#39;&#39;&nbsp;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;,&nbsp;age=&quot;&nbsp;+&nbsp;age&nbsp;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;,&nbsp;sex=&#39;&quot;&nbsp;+&nbsp;sex&nbsp;+&nbsp;&#39;\&#39;&#39;&nbsp;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;}&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Student(String&nbsp;stu_name,&nbsp;Integer&nbsp;age,&nbsp;String&nbsp;sex)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.stu_name&nbsp;=&nbsp;stu_name;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.age&nbsp;=&nbsp;age;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.sex&nbsp;=&nbsp;sex;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Student()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;}


}

IStuDao.java

package&nbsp;com.vvcat.gitee.dao;

import&nbsp;com.vvcat.gitee.bean.Student;
import&nbsp;org.springframework.data.jpa.repository.JpaRepository;
import&nbsp;org.springframework.data.jpa.repository.Query;


import&nbsp;java.util.List;

/**
 * @Author ꧁ʚVVcatɞ꧂
 * @Date 2019/10/23 14:13
 * @Version 1.0
 **/
public&nbsp;interface&nbsp;&nbsp;IStuDao&nbsp;extends&nbsp;JpaRepository&lt;Student,&nbsp;String&gt;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;//模糊查询姓名
&nbsp;&nbsp;&nbsp;&nbsp;@Query(&quot;SELECT&nbsp;stu&nbsp;FROM&nbsp;Student&nbsp;stu&nbsp;WHERE&nbsp;stu_name&nbsp;LIKE&nbsp;?1&quot;)
&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;findByNameLike(String&nbsp;name);



}

IStudentDao.java

package&nbsp;com.vvcat.gitee.dao;

import&nbsp;com.vvcat.gitee.bean.Student;
import&nbsp;org.springframework.data.jpa.repository.JpaRepository;
import&nbsp;org.springframework.data.jpa.repository.Modifying;
import&nbsp;org.springframework.data.jpa.repository.Query;
import&nbsp;org.springframework.data.repository.query.Param;
import&nbsp;org.springframework.transaction.annotation.Transactional;

import&nbsp;java.util.List;

/**
 * @Author ꧁ʚVVcatɞ꧂
 * @Date 2019/10/23 15:19
 * @Version 1.0
 **/
public&nbsp;interface&nbsp;IStudentDao&nbsp;extends&nbsp;JpaRepository&lt;Student,&nbsp;Integer&gt;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;//查询数据库中全部的数据
&nbsp;&nbsp;&nbsp;&nbsp;@Transactional&nbsp;//纳入事务管理
&nbsp;&nbsp;&nbsp;&nbsp;@Modifying&nbsp;&nbsp;// 对表进行修改操作 需要调用该注解
&nbsp;&nbsp;&nbsp;&nbsp;@Query(&quot;SELECT&nbsp;stu&nbsp;FROM&nbsp;Student&nbsp;stu&quot;)
&nbsp;&nbsp;&nbsp;&nbsp;// 注意表的大小写 要跟 IBaseDao<Student,Integer> 中的参数一致
&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;findAll();

&nbsp;&nbsp;&nbsp;&nbsp;//删除对应的ID信息
&nbsp;&nbsp;&nbsp;&nbsp;@Transactional
&nbsp;&nbsp;&nbsp;&nbsp;@Modifying&nbsp;&nbsp;// 对表进行修改操作 需要调用该注解
&nbsp;&nbsp;&nbsp;&nbsp;@Query(&quot;DELETE&nbsp;FROM&nbsp;Student&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;?1&quot;)
&nbsp;&nbsp;&nbsp;&nbsp;// 注意表的大小写 要跟 IBaseDao<Student,Integer> 中的参数一致
&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;testDeleteSql(@Param(&quot;id&quot;)&nbsp;Integer&nbsp;id);


}

App.java

package&nbsp;com.vvcat.gitee;

import&nbsp;org.springframework.boot.SpringApplication;
import&nbsp;org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 * Hello world!
 *
 */

@SpringBootApplication
public&nbsp;class&nbsp;App
{
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(&nbsp;String[]&nbsp;args&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpringApplication.run(App.class,&nbsp;args);
&nbsp;&nbsp;&nbsp;&nbsp;}
}

resources目录

hibernate:
ddl-auto: 参数

参数

描述

validate

项目启动表结构进行校验 如果不一致则报错

create

启动时删数据库中的表,然后创建,退出时不删除数据表

create-drop

启动时删数据库中的表,然后创建,退出时删除数据表 如果表不存在报错

update

最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。

application.yml

server:
  port: 8080
  servlet:
    context-path: /
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/item?serverTimezone=UTC
    username: root
    password: 123456
  jpa:
    database: MySQL
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect #mysql数据库固定配置
    show-sql: true #控制台打印sql
    hibernate:
      ddl-auto: update #update代表数据库没有表的话,会先创建表,有表的话就不创建了。

test目录

AppTest.java

package&nbsp;com.vvcat.gitee;


import&nbsp;com.vvcat.gitee.bean.Student;
import&nbsp;com.vvcat.gitee.dao.IStuDao;
import&nbsp;com.vvcat.gitee.dao.IStudentDao;
import&nbsp;org.junit.Test;
import&nbsp;org.junit.runner.RunWith;
import&nbsp;org.springframework.beans.factory.annotation.Autowired;
import&nbsp;org.springframework.boot.test.context.SpringBootTest;
import&nbsp;org.springframework.data.domain.Page;
import&nbsp;org.springframework.data.domain.PageRequest;
import&nbsp;org.springframework.data.domain.Pageable;
import&nbsp;org.springframework.data.domain.Sort;
import&nbsp;org.springframework.test.context.junit4.SpringRunner;

import&nbsp;java.util.ArrayList;
import&nbsp;java.util.List;
import&nbsp;java.util.Optional;

/**
 * Unit test for simple App.
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public&nbsp;class&nbsp;AppTest
{
&nbsp;&nbsp;&nbsp;&nbsp;@Autowired
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;IStuDao&nbsp;stuDao;

&nbsp;&nbsp;&nbsp;&nbsp;@Autowired
&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;IStudentDao&nbsp;studentDao;

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 增加方法
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testAdd(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;student&nbsp;=&nbsp;new&nbsp;Student();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.setStu_name(&quot;vvcat&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.setAge(18);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.setSex(&quot;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuDao.save(student);
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 批量增加
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testAddList(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;stuList&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0&nbsp;;&nbsp;i&nbsp;&lt;&nbsp;10&nbsp;;i++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;=&nbsp;new&nbsp;Student();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setStu_name(&quot;VVcat&quot;&nbsp;+&nbsp;i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setAge(i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setSex(&quot;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuList.add(stu);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuDao.saveAll(stuList);
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 通过主键查找
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testFindById(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional&lt;Student&gt;&nbsp;optionalStudent&nbsp;=&nbsp;studentDao.findById(1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;=&nbsp;optionalStudent.get();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(stu);
&nbsp;&nbsp;&nbsp;&nbsp;}


&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 查询所有 如果想通过条件查询,可以根据上边的方式查询。
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testFindAll(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;stuList&nbsp;=&nbsp;stuDao.findAll();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Student&nbsp;stu&nbsp;:&nbsp;stuList){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(stu);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;/**
     * 分页排序查询
     * page,第几页,从0开始,默认为第0页
     * size,每一页的大小,默认为20
     * sort,排序相关的信息,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基础上按lastname倒序排列
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testPage(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//排序
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sort&nbsp;sort&nbsp;=&nbsp;new&nbsp;Sort(Sort.Direction.DESC,&quot;id&quot;);&nbsp;&nbsp;//  //排序条件  id倒序排序
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//分页
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pageable&nbsp;pageable&nbsp;=&nbsp;PageRequest.of(0,2,sort);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// page:index是0开始的,不是从1开始的
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page&lt;Student&gt;&nbsp;page&nbsp;=&nbsp;stuDao.findAll(pageable);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//当前页结果,(0)页
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;stuList&nbsp;=&nbsp;page.getContent();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//按照每页2条数据,一共有的页数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;totalPages&nbsp;=&nbsp;page.getTotalPages();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//总共有多少条数据
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;totalElements&nbsp;=&nbsp;page.getTotalElements();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//第0页的数据
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Student&nbsp;list&nbsp;:stuList)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(list);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//查询的当前第几页
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;number&nbsp;=&nbsp;page.getNumber();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//查询的当前页面的记录数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;numberOfElements&nbsp;=&nbsp;page.getNumberOfElements();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;一共有&quot;&nbsp;+&nbsp;totalPages&nbsp;+&nbsp;&quot;\n&quot;&nbsp;+&nbsp;&quot;总共有&quot;&nbsp;+&nbsp;totalElements&nbsp;+&nbsp;&quot;条数据&quot;+&nbsp;&quot;\n&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&quot;查询的当前第&quot;&nbsp;+&nbsp;number&nbsp;+&nbsp;1&nbsp;+&nbsp;&quot;&quot;+&nbsp;&quot;\n&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&quot;查询的当前页面的记录数:&quot;+&nbsp;numberOfElements
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//遍历每页的数据
//        for (int i = 0; i < page.getTotalPages(); i++) {
//            PageRequest page1 = PageRequest.of(i, 2, sort);
//            Page<Student> page2 = studentDao.findAll(page1);
//            List<Student> stuList2 = page2.getContent();
//            for (Student list :stuList2) {
//                System.out.println(list);
//            }
//        }

&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 通用修改方法,先根据主键查找,然后在修改提交
     * 也可以通过sql直接修改.需要在IUserDao接口中定义,这里不再演示。
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testUpdate(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional&lt;Student&gt;&nbsp;stuOptional&nbsp;=&nbsp;studentDao.findById(1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;=&nbsp;stuOptional.get();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setStu_name(&quot;springDataJpa&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//主键存在为修改,不存在为新增
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuDao.save(stu);
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     *  查询其中一个进行删除
     * */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testDelete(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional&lt;Student&gt;&nbsp;stuOptional&nbsp;=&nbsp;studentDao.findById(11);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;=&nbsp;stuOptional.get();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuDao.delete(stu);
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 通过主键删除
     * 也可以通过sql直接删除.需要在IUserDao接口中定义
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testDeleteID(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;studentDao.testDeleteSql(10);
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 通过自定义数据库语句进行模拟查询
     */
&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;findByNameSql()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;byNameSql&nbsp;=&nbsp;stuDao.findByNameLike(&quot;zhangsan%&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Student&nbsp;list&nbsp;:byNameSql)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(list);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}



&nbsp;&nbsp;&nbsp;&nbsp;/**
     * 通过自定义数据库语句进行模拟查询
     */

&nbsp;&nbsp;&nbsp;&nbsp;@Test
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;findNameSql()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;byNameSql&nbsp;=&nbsp;stuDao.findByNameLike(&quot;zhangsan%&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Student&nbsp;list&nbsp;:byNameSql)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(&quot;id:&quot;&nbsp;+&nbsp;list.getId()&nbsp;+&nbsp;&quot;,&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(&quot;name:&quot;&nbsp;+&nbsp;list.getStu_name()&nbsp;+&nbsp;&quot;,&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(&quot;age:&quot;&nbsp;+&nbsp;list.getAge()&nbsp;+&nbsp;&quot;,&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&quot;sex:&quot;&nbsp;+&nbsp;list.getSex()&nbsp;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}



&nbsp;&nbsp;&nbsp;&nbsp;}



}

举报

相关推荐

0 条评论