社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
《JavaEE开发的颠覆者: Spring Boot实战》系列读书笔记
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请求测试。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!