栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot整合JPA

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot整合JPA

  • 内容
  1. 搭建 JPA 环境
  2. 默认的 CRUD 方法
  3. 方法名关键字进行查询操作(findBy语句)
  4. @Query注解配合SQL语句进行数据操作

1 . springboot 下搭建 JPA 环境

生成的依赖

 
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

修改配置文件:
改成自己的数据库信息

#application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/teaching?serverTimezone=UTC  #连接地址
    username: root      #用户名
    password: "001013"  #密码,0开头的密码需要加双引号
    driver-class-name: com.mysql.cj.jdbc.Driver #驱动
  jpa:
    show-sql: true
    database: mysql
    hibernate:
      ddl-auto: update


  1. 编写 ORM 实体类
    创建 Student 类,在类上标注 @Entity 注解和 @Table 注解,在 id 自动上标注 @Id注解和@GeneratedValue(strategy=GenerationType.IDENTITY)注解
package com.wakeuplb.demojpa;

import org.springframework.stereotype.Component;

import javax.persistence.*;
import java.time.LocalDate;

@Component//它的作用就是实现bean的注入
@Entity
@Table(name = "t_student")//表名
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)//主键
    private Integer id;
    private String name;
    private String stu_number;
    private Integer age;
    private LocalDate birthday;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStu_number() {
        return stu_number;
    }

    public void setStu_number(String stu_number) {
        this.stu_number = stu_number;
    }

    public Integer getAge() {
        return age;
    }

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

    public LocalDate getBirthday() {
        return birthday;
    }

    public void setBirthday(LocalDate birthday) {
        this.birthday = birthday;
    }
}

  1. 创建接口
    创建接口 StudentRepository 并继承 JpaRepository ,写入对应实体类 Student ,以及主键类型 Integer
package com.wakeuplb.demojpa;

import org.springframework.data.jpa.repository.JpaRepository;

public interface StudentRepository extends JpaRepository {
}

  1. 测试
package com.wakeuplb.demojpa;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

@SpringBootTest
class DemoJpaApplicationTests {

    @Test
    void contextLoads() {
    }

    @Autowired
    StudentRepository studentRepository;

    @Autowired
    Student student;

    //测试增加
    @Test
    void testInsert(){
        student.setName("lb");
        student.setAge(21);
        student.setStu_number("609199020");
        student.setBirthday(LocalDate.now());

        studentRepository.save(student);
    }
	
	//测试查询
    @Test
    void testSelect(){
        Optional optional = studentRepository.findById(1);
        Student student = optional.get();
        System.out.println(student);
    }

	//测试修改
    @Test
    void testUpdate(){
        student.setId(2);
        student.setAge(2);
        student.setStu_number("123456");
        student.setBirthday(LocalDate.now());

        studentRepository.save(student);
    }

	//测试删除
    @Test
    void testDelete(){
        studentRepository.deleteById(1);
    }

    //测试分页查询
    @Test
    void testPage(){
        PageRequest pageRequest = PageRequest.of(0, 2);
        Page studentPage = studentRepository.findAll(pageRequest);
        List studentList = studentPage.getContent();
        System.out.println(studentList);
    }

	//条件查询
    @Test
    void testExample(){
        student.setStu_number("6199020");
        Example example = Example.of(student);
        List studentList = studentRepository.findAll(example);
        System.out.println(studentList);
    }

}

小节:

  1. 导依赖
  2. 复制配置文件
  3. 编写实体类与业务代码
  4. 测试
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845028.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号