【Hibernate】Re04 JPA规范使用
都忘了前面一些小前提,就是数据库需要是存在的,不过写链接参数都会写上的
JPA实现就是和Hibernate类似,也需要对应的配置文件等等。。。
1、配置文件必须命名【persistence.xml】且放在classpath目录下的META-INF目录下
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="jpa.persist" transaction-type="RESOURCE_LOCAL"> <!-- name名称可以自定义。事务类型,本地资源? --> <!-- 配置javax.persistence.spi.PersistenceProvider的实现类 如果只有一个实现,其实也可以不写 -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <class>cn.zeal4j.domain.Student</class> <!-- 对应的实体类 --> <properties>
<!-- 链接参数 -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://IP:Port/jpa?serverTimezone=Asia/Shanghai"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="Password"/> <!-- 规范实现者的相关配置 也就是供应商 -->
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
2、编写配置对应的实体类,因为本来就是JPA规范,所以和上一篇的注解使用没有改动
package cn.zeal4j.domain; /**
* @author Administrator
* @file Hibernate
* @create 2020 09 23 22:09
*/ import org.hibernate.annotations.GenericGenerator; import javax.persistence.*;
import java.io.Serializable;
import java.util.Date; @Entity
@Table(name = "user")
public class User implements Serializable {
private Integer id;
private String username;
private String password;
private Date reg_time; public User() {
} public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
} public User(Integer id, String username, String password, Date reg_time) {
this(id, username, password);
this.reg_time = reg_time;
} @Id // 该注解定义实体标识符的属性
@GeneratedValue(generator = "increment", strategy = GenerationType.AUTO) // 两个主键生成策略,指示Hibernate如何生成
@GenericGenerator(name = "increment", strategy = "increment")
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Temporal(TemporalType.DATE) // 可以对时间类型的数据注解JPA提供的枚举时间类型 DATE, TIME, TIMESTAMP;
@Column(name = "reg_time") // 标注类属性对应的表字段名称
public Date getReg_time() {
return reg_time;
} public void setReg_time(Date reg_time) {
this.reg_time = reg_time;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
3、测试运行:
@Test
public void JpaSpecification() {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpa.persist"); EntityManager entityManager = null; EntityTransaction transaction = null; try {
entityManager = entityManagerFactory.createEntityManager();
transaction = entityManager.getTransaction();
transaction.begin(); entityManager.persist(new Student(null, "学生Zeal4J", 18, 0, new Date(), "12343215531")); transaction.commit(); } catch (Exception exception) {
exception.printStackTrace();
transaction.rollback();
} finally {
entityManager.close();
}
}
【Hibernate】Re04 JPA规范使用的更多相关文章
- Spring Data-Spring整合Hibernate基于JPA规范
JPA:由 Sun 公司提供了一对对于持久层操作的标准(接口+文档) Hibernate:是 Gavin King 开发的一套对于持久层操作的自动的 ORM 框架. Hibernate JPA:是在 ...
- JavaEE(12) - JPA规范及实现(TopLink和Hibernate)
1. JPA规范与ORM框架之间的联系 JPA规范并不属于EJB3规范,它是一套完全独立的规范,不仅可以在基于EJB的JavaEE应用程序中使用,而且完全可以在普通JavaSE应用程序中使用. JPA ...
- [转]Hibernate与Jpa的关系,终于弄懂
原文地址:http://blog.sina.com.cn/s/blog_5f1619e80100yoxz.html 我知道Jpa是一种规范,而Hibernate是它的一种实现.除了Hibernate, ...
- Hibernate与Jpa的关系,终于弄懂
我知道Jpa是一种规范,而Hibernate是它的一种实现.除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实 ...
- 数据持久层框架iBatis, Hibernate 与 JPA 比较
在本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persistence API(JPA).我们介绍每种解决方案并讨论其所规定的品质,以及在广泛 ...
- JPA规范及其它持久层框架
JPA是一种规范,而hibernate是JPA的一种实现 JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.J ...
- Hibernate与Jpa的关系(2)
[转自:http://blog.163.com/hero_213/blog/static/398912142010312024809/ ] 近年来ORM(Object-Relational Mappi ...
- Hibernate与Jpa的关系(1)
[转自:http://freewind.me/blog/20111129/588.html ] 我知道Jpa是一种规范,而Hibernate是它的一种实现.除了Hibernate,还有EclipseL ...
- Hibernate与JPA的区别是什么
翻译来源:https://www.quora.com/What-is-the-difference-between-Hibernate-and-JPA 本文作者:苏生米沿 本文地址:http://bl ...
- 转:spring data jpa、 hibernate、 jpa 三者之间的关系
原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...
随机推荐
- 在webpack中运行vue
网址:https://vue-loader.vuejs.org/zh/ Vue Loader 是一个 webpack 的 loader,它允许你以一种名为单文件组件的格式撰写 Vue 组件 安装loa ...
- ABC332
D 我们可以把矩阵 \(\text{A}\) 看成 \({p,q}\). \(p\) 指现在一行最开始在哪里,\(q\) 指现在这一列最开始在哪里. 于是我们枚举 \(p\) 和 \(q\) 所有可能 ...
- Vector + ClickHouse 收集日志
目前业界的日志生态,最常用的是 ELK,其次就是 ClickHouse,本文会演示如何使用 Vector + ClickHouse 来采集 Nginx 日志并做清洗,最终写入 ClickHouse.至 ...
- winform遍历控件的Controls.OfType<>方法
页面TextBox控件较多时,可以使用类似的名字,方便遍历时整体的修改,可以使用Controls.OfType<TextBox>()获取所有文本框: 需要引用命名空间System.Linq ...
- RSS 解析:全球内容分发的利器及使用技巧
使用 RSS 可以将最新的网络内容从一个网站分发到全球数千个其他网站. RSS 允许快速浏览新闻和更新. RSS 文档示例 <?xml version="1.0" encod ...
- java datetime数据类型去掉时分秒
在Java中,如果我们想要表示一个日期而不包括时间(时分秒),我们通常会使用java.time包中的LocalDate类.LocalDate是一个不可变的日期对象,它只包含年.月.日三个字段. 1. ...
- 在 AWS 平台搭建 DolphinScheduler
AWS平台搭建 DolphinScheduler DolphinScheduler 是当前热门的调度器,提供了完善的可视化.拖拉拽式的调度.在 AWS 平台上提供了 airflow 与 step fu ...
- 创建docker
创建docker 准备实验环境 1. 安装前准备 Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可. 1.1 查看当前的内核版本 uname -r 1.2 使用 root ...
- sqlmap 环境搭建 sqli-labs平台搭建
sqlmap 环境搭建: windows 1.先去官网下载:https://sqlmap.org/ 2.在python的Scripts目录下创建一个sqlmap 把官网下载的东西解压到那里 3.添加环 ...
- 【论文阅读】ICML2020: Can Autonomous Vehicles Identify, Recover From, and Adapt to Distribution Shifts?
Column: January 6, 2022 7:18 PM Last edited time: January 30, 2022 12:14 AM Sensor/组织: Oxford Status ...