Spring Boot +JPA 10分钟快速入门
Spring Boot +JPA 10 minute quick start
学前基础
Spring Boot
MySQL
开发工具
IDEA +MySQL+Navicat+JDK
Spring Data JPA 使用步骤
- 建立实体类、和数据库表字段保持一致。
- 编写具体操作数据库类JpaRepository接口。
- Controller类,展示数据。
步骤0:Spring Data JPA-工程环境准备
1、新建MySQL数据表
安装mysql,新建数据库实例mysql
新建User数据表,字段id(主键), name, tid,并插入两条记录
本文使用是第三方视图话管理客户端Navicat进行数据库操作。

扫描二维码关注公众号,回复:
12647148 查看本文章
2、Spring Boot 工程搭建
IDEA新建Spring Boot项目:File—New—Project
注意:
默认的Initializr Service URL下载不稳定,可选择Custom,配置为国内阿里资源地址:https://start.aliyun.com

给Group和Artifact命名,完成包名及Group+Artifact

下一步勾选组件:
开发工具:Spring Boot DevTools
Web:Spring Web
数据库:JDBC API、Spring Data JPA、Spring Data JDBC、MySQL Driver(本文选取的是mysql数据库)



Finish

给工程配置环境信息
将src-main-resource下配置文件重命名修改为更常用的.yml, 并配置为如下
#端口,项目上下文根 server: port: 8086 # servlet: # context-path: /hotel spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC username: root password: root jpa: database-platform: org.hibernate.dialect.MySQL5InnoDBDialect # 在建表的时候,将默认的存储引擎切换为INnoDB 用的,可省略 show-sql: true # 配置再日志中打印出执行到位sql语句信息 hibernate: # jpa底层,不用管 # ddl-auto: update #配置指明再程序启动时要删除并且创建实体类对应的表 |
注意: 红色字体部分为自建的mysql数据库实例名,按照各自实际情况修改。 |

启动该程,运行无报错,浏览器打开http://localhost:8086/ 运行如下图,即搭建成功。


步骤1:Spring Data JPA-实体类
src-main-java下新建User实体类,并放进新建dao包中。
User实体类:
Interger id
String name
private Integer tid;
注意:
实体类属性和步骤0-1数据库user数据表中的字段一一对应。
Id上添加@Id注解,表明Id字段是主键,User实体类上添加@Entity实体类注解。
通过IDEA快捷键Alt+Insert 添加实体类的有参/无参构造方法和getter/setter方法

package com.example.dao;
import javax.persistence.Entity;
import org.springframework.data.annotation.Id;
@Entity
public class User {
@Id
private Integer id;
private String name;
private Integer tid;
public User(Integer id) {
this.id = id;
}
public User() {
}
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 Integer getTid() {
return tid;
}
public void setTid(Integer tid) {
this.tid = tid;
}
} |
步骤2:Spring Data JPA-JpaRepository接口
src-main-java下新建JpaRepository接口,并放进新建包中。

package com.example.mapper;
import com.example.dao.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,Integer> {
} |
注意:红色部分分别为实体类和其主键 |
步骤3:Spring Data JPA-Controller类
src-main-java下新建Controller接口,并放进新建包中。

package com.example.controller;
import com.example.dao.User;
import com.example.mapper.UserRepository;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Resource
private UserRepository userRepository;
@RequestMapping("/")
public List<User> getUsers(){
return userRepository.findAll();
}
} |
测试:
运行Spring Boot 工程,在浏览器输入http://localhost:8086/ 网页显示User表中查询出记录的Json字符串,即正常
扩展:JPA-自定义SQL语句
1、修改JpaRepository接口:{添加自定义数据操作方法(对应自定义语句)}
2、修改Controller:{调用自定义的数据操作方法}
通过自定义语句可以跨表或复杂逻辑操作。
package com.example.mapper;
import com.example.dao.User;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface UserRepository extends JpaRepository<User,Integer> {
@Query(value = "select * from user",nativeQuery = true)
List<User> getUserAll();
} |
@RestController
public class UserController {
@Resource
private UserRepository userRepository;
@RequestMapping("/")
public List<User> getUsers(){
return userRepository.getUserAll ();
}
} |
红色为修改部分 |
视频 | 笔记 | 代码 : https://gitee.com/ikunsdc/Spring-Data-JPA-quick-start