springboot整合jpa项目入门级别demo
- 前言
- 一、新建一个空boot项目
- 二、准备好数据库,下面以MySQL为主
- 三、导入依赖
- 四、生成JPA实体
- 五、JPA基本注解
- 六、JPQL 和 EntityManager
- 七、配置文件
- 八、demo包
前言
- 简单基础入门级别,有基础勿留香!
一、新建一个空boot项目
- 傻瓜式创建即可
二、准备好数据库,下面以MySQL为主
- 创建好测试表dog表,待用
三、导入依赖
-
下面依赖,后续会用到,直接贴上了
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java runtime org.projectlombok lombok 1.16.14 com.alibaba fastjson 1.2.76
四、生成JPA实体
五、JPA基本注解
- @entity
- @Table(name=“table_name”)
当前实体与其映射的数据库表名不同时需要加此注解,如果一致,不加也行 - @Id 主键
- @GeneratedValue
主键的生成策略,例:@GeneratedValue(strategy = GenerationType.AUTO) - @Basic
表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXXX()方法,默认即为@basic,会把XXX映射为数据库的一列
即:如果在实体的get方法上没加注解,则默认加了@Basic(此注解加不加都行) - @Column(name = “dog_name”) 映射数据库字段名
- @Transient 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,如果一个属性并非数据库表的字段的映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@basic
- @Temporal(TemporalType.DATE)
在进行属性映射时可使用此注解来调整数据库存储日期的精度(通过设置:TemporalType.DATE,TemporalType.TIMESTAMP)
六、JPQL 和 EntityManager
-
简单入门代码如下:
-
实体:JPA自动生成的
package com.liu.susu.pojo;
import javax.persistence.*;
import java.util.Objects;@NamedQuery(name = “testNamedQuery”,query = “select d from com.liu.susu.pojo.Dog d”)
@Entity
public class Dog {
private int dogNum;
private String dogName;
private String dogKind;
private Integer dogAge;
private String decision;public Dog(){ } public Dog(int dogNum, String dogName) { this.dogNum = dogNum; this.dogName = dogName; } @Id @Column(name = "dog_num") public int getDogNum() { return dogNum; } pu