暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JPA的基本使用

程序餐厅 2020-11-15
309

1,在创建项目时添加jpa依赖

2,添加MySql依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
 </dependency> 

3,在配置文件中添加相应的配置

spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/XXXXX?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
password: root
username: root
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 5
jpa:
database-platform: org.hibernate.dialect.MySQL5Dialect #设置数据库方言
hibernate: #映射策略
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: false
open-in-view: false

4,定义实体类

@Entity: 指出该Java类为实体类,将映射到指定的数据库

@Table: 标注常用name属性,用于指定数据库的表的名称

@Id: 主键的映射

@Column: 映射数据表的列名,指定unique,length等

@GeneratedValue: 用于标注主键的生成策略,通过strategy属性指定

strategy属性:提供四种值:

-AUTO主键由程序控制, 是默认选项 ,不设置就是这个

-IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式

-SEQUENCE 通过数据库的序列产生主键, MYSQL  不支持

-Table 提供特定的数据库产生主键, 该方式更有利于数据库的移植


generator属性:

generator属性的值是一个字符串,默认为"",其声明了主键生成器的名称

(对于同名的主键生成器@SequenceGenerator和@TableGenerator)。


@TableGenerator : 表生成器,参数为字段

@Basic : 基本注解,默认有,普通列


5,DAO层实现接口,完成基本增删改查

public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
List<T> findAll();


List<T> findAll(Sort var1);


List<T> findAllById(Iterable<ID> var1);


<S extends T> List<S> saveAll(Iterable<S> var1);


void flush();


<S extends T> S saveAndFlush(S var1);


void deleteInBatch(Iterable<T> var1);


void deleteAllInBatch();


T getOne(ID var1);


<S extends T> List<S> findAll(Example<S> var1);


<S extends T> List<S> findAll(Example<S> var1, Sort var2);
}


文章转载自程序餐厅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论