# springboot-jpa
**Repository Path**: mjkapps/springboot-jpa
## Basic Information
- **Project Name**: springboot-jpa
- **Description**: 简单的springboot+jpa的整合
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-02-13
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# springboot-jpa
#### 介绍
简单的springboot+jpa的整合
#### JPA简单理解
SpringDataJPA是基于HIbernate开发的一个框架,可以说是Hibernate现阶段发展到极致的表现.
JPA是一个对象映射(ORM)框
#### 操作
1. 添加依赖
```
org.springframework.boot
spring-boot-starter-data-jpa
```
2. application.yml中进行配置
```
spring:
jpa:
hibernate:
#更新或者创建数据表结构
ddl-auto: update
#控制台显示SQL
show-sql: true
```
3. 编程entity类,使用JPA注解配置映射关系
```
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "tb1_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;
```
4. 编写接口继承JpaRepository来完成对数据库的操作
编写的接口中可以使用@Query注解来定制sql语句
```
/**
使用原生sql:nativeQuery = true
*/
@Query(nativeQuery = true,value="select username from User where id=:id")
public Object listById(@Param("id") Integer id);
```
5. 注入UserRepository来使用方法,与Hibernate中的操作一样,jpa会自动生成sql语句,不用我们自己写.
```
@GetMapping("/user/{id}")
public Optional getUser(@PathVariable("id")Integer id){
Optional user = userRepository.findById(id);
return user;
}
```