Spring Boot实战|Jpa的使用 - Go语言中文社区

Spring Boot实战|Jpa的使用


《JavaEE开发的颠覆者: Spring Boot实战》系列读书笔记

Spring Boot Jpa 介绍


Jpa 是什么?
Jpa (Java Persistence API) 是 Java的 持久化规范。他是一套规范,不是一套产品,为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术,具有易于使用,伸缩性强的优点。
JPA 是 Hibernate 的一个抽象,本质上就是一种 ORM 规范,不是ORM 框架。Hibernate 除了作为 ORM 框架之外,也是一种 JPA 实现。

Spring Boot Jpa
Spring Boot Jpa 是 Spring 基于 ORM 框架、Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data Jpa 可以极大提高开发效率!

基本操作

添加依赖
spring-boot-starter-jdbc依赖

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa
			</artifactId>
		</dependency>

mysql连接类和连接池类:

<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency> 

配置数据源
在application.properties文件配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/XX?
  useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false
spring.datasource.username=XX
spring.datasource.password=XX
mybatis.configuration.map-underscore-to-camel-case=true
server.port=8080

创建实体类
通过@Entity 表明是一个映射的实体类, @Id表明id, @GeneratedValue 字段自动生成

@Entity
@Table(name="city")
public class CityInfo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String city;

    public CityInfo() {

    }

    public CityInfo(int id, String city) {
        this.id = id;
        this.city = city;
    }

    public int getId() {
        return id;
    }

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

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

Dao层
数据访问层,通过编写一个继承自 JpaRepository 的接口就能完成数据访问,
Spring Boot Jpa 默认预先生成了一些基本的CURD的方法,例如:增、删、改等
继承 JpaRepository

@Repository
public interface CityRepository extends JpaRepository<CityInfo,Integer> {
}

使用默认方法,coltroller层

@RequestMapping(value = "getAll", method = RequestMethod.GET)
    public Result<List<CityInfo>> getAll(){
        List<CityInfo> cityInfos = cityRepository.findAll();
        return new Result<List<CityInfo>>(cityInfos);
    }
    @RequestMapping(value = "findOne", method = RequestMethod.GET)
    public Result<CityInfo> findOne(){
        CityInfo cityInfo = cityRepository.getOne(11);
        return new Result<CityInfo>(cityInfo);
    }
    @RequestMapping(value = "save", method = RequestMethod.GET)
    public void save(CityInfo cityInfo){
        cityRepository.save(cityInfo);
    }
    @RequestMapping(value = "delete", method = RequestMethod.GET)
    public void delete(CityInfo cityInfo){
        cityRepository.delete(cityInfo);
    }

自定义简单查询
自定义的简单查询就是根据方法名来自动生成 SQL,主要的语法是findXXBy,readAXXBy,queryXXBy,countXXBy, getXXBy后面跟属性名称:

User findByCityName(String cityName);

也可以使用一些加一些关键字And 、 Or,基本上 SQL 体系中的关键词都可以使用,例如: LIKE 、 IgnoreCase、 OrderBy。

List<CityInfo> findByCityLike(String city);

可以通过postman请求测试。
在这里插入图片描述


参考文档

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/LJY_Qt/article/details/100572872
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-30 10:49:23
  • 阅读 ( 1299 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢