写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。
技术是开源的、知识是共享的。
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。
相关文章:
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。
一、搭建工程环境
工程目录结构:
1. 引入 spring-boot-starter-data-jpa
pom.xml
<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-web</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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 配置热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. 编写数据源的相关配置
application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot_jpa?serverTimezone=GMT%2B8
username: root
password: root
Jpa:
hibernate:
# 更新或创建数据表
ddl-auto: update
# 在控制台显示sql
show-sql: true
注意: 第一次建表create 后面用update,要不然每次重启都会新建表
二、 整合 SpringData JPA
1. 编写一个实体类
实体类和数据表进行映射,并且配置好映射关系
User
// 使用Jpa注解配置映射关系
@Entity // 告诉Jpa这是一个实体类(和数据表映射的类)
@Table(name = "tb_user") // 指定和那个数据表对应
public class User {
@Id // 标明这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
private Integer id;
@Column(name = "last_name",length = 50) // 这是和数据表对应的一个列
private String lastName;
@Column // 默认列名就是属性名
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
2. 编写一个Dao接口来操作实体类对应的数据表
Dao接口继承 JpaRepository 完成对数据库的操作
UserDao
public interface UserDao extends JpaRepository<User,Integer> {
}
3. 编写 Controller 层
@RestController
public class UserController {
@Autowired
UserDao userDao;
/**
* 根据id查询用户信息
*
* @param id
* @return
*/
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id) {
User user = userDao.findById(id).orElse(null);
return user;
}
/**
* 新增用户信息
*
* @param user
* @return
*/
@GetMapping("/user")
public User insertUser(User user) {
User save = userDao.save(user);
return save;
}
}
4. 测试
由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!
转载:https://blog.csdn.net/weixin_43570367/article/details/103721449
查看评论