简单使用:spring boot整合spring Data JPA
2019-11-05 16:05:45来源:博客园 阅读 ()
简单使用:spring boot整合spring Data JPA
JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
1.jpa具有什么优势?
(1)、标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
(2)、容器级特性的支持
JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
(3)、简单方便
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
(4)、查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
(5)、高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
2.JPA注解
注解 |
作用 |
@Entity |
声明类为实体或表 |
@Table |
声明表名 |
@Basic |
指定非约束明确的各个字段 |
@Embedded |
指定类或它的值是一个可嵌入的类的实例的实体的属性 |
@Id |
指定的类的属性,用于识别(一个表中的主键) |
@GeneratedValue |
指定如何标识属性可以被初始化,例如自动、手动、或从序列表中获得的值 |
@Transient |
指定的属性,它是不持久的,即:该值永远不会存储在数据库中 |
@Column |
指定持久属性栏属性 |
@SequenceGenerator |
指定在@GeneratedValue注解中指定的属性的值。它创建了一个序列 |
@TableGenerator |
指定在@GeneratedValue批注指定属性的值发生器。它创造了的值生成的表 |
@AccessType |
这种类型的注释用于设置访问类型。如果设置@AccessType(FIELD),则可以直接访问变量并且不需要getter和setter,但必须为public。如果设置@AccessType(PROPERTY),通过getter和setter方法访问Entity的变量 |
@JoinColumn |
指定一个实体组织或实体的集合。这是用在多对一和一对多关联 |
@UniqueConstraint |
指定的字段和用于主要或辅助表的唯一约束 |
@ColumnResult |
参考使用select子句的SQL查询中的列名 |
@ManyToMany |
定义了连接表之间的多对多一对多的关系 |
@ManyToOne |
定义了连接表之间的多对一的关系 |
@OneToMany |
定义了连接表之间存在一个一对多的关系 |
@OneToOne |
定义了连接表之间有一个一对一的关系 |
@NamedQueries |
指定命名查询的列表 |
@NamedQuery |
指定使用静态名称的查询 |
1.依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version>
</dependency>
2.配置文件
application.properties #DB Configation spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=2119 # JPAConfiguration spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.generate-ddl=true
application.yml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username: root
password: 2119
jpa:
database: mysql
show-sql: true
generate-ddl: true
freemarker:
suffix: .ftl
3.实体类:
@Entity @Table(name="user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String username; private String password; private String name; }
4.数据访问接口:
public interface UserDao extends JpaRepository<User,Integer>{ }
原文链接:https://www.cnblogs.com/crazy-lc/p/11801373.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash