1. 创建JPA 工程

(1)选择创建 JPA Project,注意不是Java Project

(2)JPA version选择 2.0

(3)选择用户库,否则会出现 At least one user library must be selected. 错误

(4)注意persistence.xml文件位置

2. 导包,我直接复制过来的包。

导入Hibernate包、导入JPA包、导入Mysql包

3.编写配置文件persistence.xml 里面要配置数据库连接相关信息和Hibernate相关信息。

(1)编写数据库连接相关信息

 <!-- 连接数据库的基本信息 -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://14.12.71.21:3306/jpa?useUnicode=true&amp;characterEncoding=utf8&amp;characterSetResults=utf8"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="xxxx"/>

(2)Hibernate相关信息配置

 <!-- 配置 JPA 实现产品的基本属性. 配置 hibernate 的基本属性 -->
<!-- 语句格式化 -->
<property name="hibernate.format_sql" value="true"/>
<!-- 语句输出 -->
<property name="hibernate.show_sql" value="true"/>
<!-- 自动处理表结构 -->
<property name="hibernate.hbm2ddl.auto" value="update"/>
<!--
配置使用什么 ORM 产品来作为 JPA 的实现
1. 实际上配置的是 javax.persistence.spi.PersistenceProvider 实现类。
2. 若JPA项目这个你只有一个JPA的实现产品,则也可以不配置该节点。
-->
<provider>org.hibernate.ejb.HibernatePersistence</provider>

4.创建实体类

(1)实体类加注解,@Entity和@Table(name = "表名")两个注解。

 import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Table(name = "jpa_ustomer")
public class Customer {

(2)字段加注解

     // 选择主键自增方式
@GeneratedValue(strategy=GenerationType.AUTO)
@Id
//@Column(name="ID") // 对应列名,如果不写效果一样。
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
// 列名不一样,必须要写上,好对应。
@Column(name="LAST_NAME")
public String getLasName() {
return lasName;
}
public void setLasName(String lasName) {
this.lasName = lasName;
}
public String getEmail() {
return email;
}
// 一样不需要写@Column
public void setEmail(String email) {
this.email = email;
}

(3)实体类需要配置到配置文件 persistence 中。

 <!-- 添加持久化类 -->
<class>com.jtfr.jpa.helloworld.Customer</class>

5.编写测试类

(1)创建EntityManagerFactory

 // 1.创建EntityManagerFactory
// 来源persistence.xml 里面的name <persistence-unit name="Jpa-1" transaction-type="RESOURCE_LOCAL">
String persistenceUnitName = "Jpa-1";
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName);

(2)创建EntityManager

 // 2.创建EntityManager
EntityManager entityManager = entityManagerFactory.createEntityManager();

(3)开启事务

 // 3.开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();

(4)进行持久化操作(数据存入数据库中)

 // 4.进行持久化操作
Customer customer = new Customer();
customer.setAge(12);
customer.setEmail("1123181523@qq.com");
customer.setLasName("Tom");
entityManager.persist(customer);

(5)提交事务

 // 5.提交事务
transaction.commit();

(6)关闭EntityManager

 // 6.关闭EntityManager
entityManager.close();

(7)关闭EntityManagerFactory

 // 7.关闭EntityManagerFactory
entityManagerFactory.close();

6.查看结果

(1)自动创建了表,且插入了数据

(2)表主键是自增的方式

7.总结:JPA就是Hibernate的马甲

8.错误地方

(1) Hibernate 在eclipse里面没有用户库,需要自己配置,百度有。

(2) 创建的时候选择的是2.1 需要换成2.0才是正确的。

一、创建且运行JPA工程的更多相关文章

  1. Visual Studio 2013创建并运行Cocos2d-x工程

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 1.准备: 我们得先把Visual Studio 2013安装好:可以去MSDN官网下载,在安装好 2.安装好vs之后,在cmd(终端)创 ...

  2. JavaEE开发之SpringBoot工程的创建、运行与配置

    本篇博客我们就来聊一下如何使用Eclipse+STS插件来创建Spring Boot的工程.Spring Boot可以使我们更容易的使用Spring框架,在Spring Boot中自动配置了好多东西, ...

  3. 手把手教你解决无法创建 JPA 工程的问题

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...

  4. 解决无法创建 JPA 工程的问题

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...

  5. Django系列:(1)PyCharm下创建并运行我们的第一个Django工程

    准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm. 我的配置: – Python 2.7.11 – Pycharm Professional 5.0. ...

  6. 实验0 安装GLUT包及工程的创建与运行

    下面将对Windows下在MicroSoft Visual C++2010(简称MSVC)环境下的OpenGL编程进行简单介绍. 1.安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们 ...

  7. 基于eclipse创建android的helloworld工程

    基于eclipse创建android的helloworld工程 之前用过Android studio感觉很慢,决定采用eclipse来学习Android开发.下面来看是怎么创建的. 选择File--- ...

  8. 终于用scons创建了一个MDK工程

    这几天我在学着怎么使用RT-Thread.起初只想用一下里面的RTGUI,却一直没成功,功力实在不行啊. RT-Thread用了scons来创建工程,似乎还能编译,还有很多可配置项,很是方便.于是我想 ...

  9. 【Android Developers Training】 1. 创建一个Android项目工程

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

随机推荐

  1. Kettle数据同步速度调优记录

    Msyql到Vertica 1.mysql中在openshop 数据库中选择其中一个300W左右数据的表 create table ip_records_tmp_01 AS SELECT * FROM ...

  2. oracle for loop

    我们在Oracle存储过程中需要遍历一张表,应该怎样做.我想大多少的人第一个念头就是Cursor. 比如: create or replace procedure StudyCursor( resul ...

  3. 运行rabbitmq

    docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq c4663bdca2cd

  4. UITextfield 允许和禁止编辑

    1.enabled属性 2.resignFirstResponder,设置的时候,如果不起作用,可以延时一会儿,因为键盘升起需要时间. dispatch_after(dispatch_time(DIS ...

  5. 【bzoj1185】[HNOI2007]最小矩形覆盖 (旋转卡壳)

    给你一些点,让你用最小的矩形覆盖这些点 首先有一个结论,矩形的一条边一定在凸包上!!! 枚举凸包上的边 用旋转卡壳在凸包上找矩形另外三点... 注意精度问题 #include<cstdio> ...

  6. 组合的输出(回溯、dfs)

    问题 O: [回溯法]组合的输出 题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r ...

  7. 二叉查找树BST

    每棵子树头节点的值都比各自左子树上所有节点值要大,也都比各自右子树上所有节点值要小. 二叉查找树的中序遍历序列一定是从小到大排列的. 一个节点的后继节点是指,这个节点在中序遍历序列中的下一个节点.相应 ...

  8. basic play

    [root@wen ~]# w 19:01:27 up 1 day, 7:06, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN ...

  9. LOJ 3058 「HNOI2019」白兔之舞——单位根反演+MTT

    题目:https://loj.ac/problem/3058 先考虑 n=1 怎么做.令 a 表示输入的 w[1][1] . \( ans_t = \sum\limits_{i=0}^{L}C_{L} ...

  10. [CSP-S模拟测试]:v(hash表+期望DP)

    题目背景 $\frac{1}{4}$遇到了一道水题,又完全不会做,于是去请教小$D$.小$D$看了$0.607$眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{ ...