Spring Boot2 系列教程(二十三)理解 Spring Data Jpa

  • 3.添加实体类

接下来在项目中添加实体类,如下:

@Entity(name = “t_book”)

public class Book {

private Long id;

private String name;

private String author;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

public Long getId() {

return id;

}

// 省略其他getter/setter

}

首先 @Entity 注解表示这是一个实体类,那么在项目启动时会自动针对该类生成一张表,默认的表名为类名,@Entity 注解的 name 属性表示自定义生成的表名。@Id 注解表示这个字段是一个 id,@GeneratedValue 注解表示主键的自增长策略,对于类中的其他属性,默认都会根据属性名在表中生成相应的字段,字段名和属性名相同,如果开发者想要对字段进行定制,可以使用 @Column 注解,去配置字段的名称,长度,是否为空等等。

  • 4.创建 persistence.xml 文件

JPA 规范要求在类路径的 META-INF 目录下放置 persistence.xml,文件的名称是固定的

<?xml version="1.0" encoding="UTF-8"?>

org.hibernate.jpa.HibernatePersistenceProvider

org.javaboy.Book

<property name=“hibernate.connection.url”

value=“jdbc:mysql:///jpa01?useUnicode=true&characterEncoding=UTF-8”/>

注意:

  1. persistence-unit 的 name 属性用于定义持久化单元的名字, 必填。

  2. transaction-type:指定 JPA 的事务处理策略。RESOURCE_LOCAL:默认值,数据库级别的事务,只能针对一种数据库,不支持分布式事务。如果需要支持分布式事务,使用JTA:transaction-type=“JTA”

  3. class 节点表示显式的列出实体类

  4. properties 中的配置分为两部分:数据库连接信息以及Hibernate信息

  • 5.执行持久化操作

EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(“NewPersistenceUnit”);

EntityManager manager = entityManagerFactory.createEntityManager();

EntityTransaction transaction = manager.getTransaction();

transaction.begin();

Book book = new Book();

book.setAuthor(“罗贯中”);

book.setName(“三国演义”);

manager.persist(book);

transaction.commit();

manager.close();

entityManagerFactory.close();

这里首先根据配置文件创建出来一个 EntityManagerFactory ,然后再根据 EntityManagerFactory 的实例创建出来一个 EntityManager ,然后再开启事务,调用 EntityManager 中的 persist 方法执行一次持久化操作,最后提交事务,执行完这些操作后,数据库中旧多出来一个 t_book 表,并且表中有一条数据。

2.1.1 关于 JPQL

  1. JPQL 语言,即 Java Persistence Query Language 的简称。JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。JPQL语言的语句可以是 select 语句、update 语句或 delete 语句,它们都通过 Query 接口

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值