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. vscode舒适的字体风格

    首选项-->设置-->输入setting.json-->查找到设置文件 添加如下配置 "editor.tabSize": 2, "files.assoc ...

  2. 第三周作业—N42-虚怀若谷

    一.显示/etc/目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录 ls  /etc/[^[:alpha:]][[:alpha:]]* 二.复制/etc/目录下所有以p开头的 ...

  3. SSM项目用ajax来显示数据

    <script type="text/javascript"> //1:页面加载完成后,直接去发送ajax请求,要到分页的数据 $(function(){ $.ajax ...

  4. spring boot jar的支持

  5. php chr()函数 语法

    php chr()函数 语法 作用:从指定的 ASCII 值返回字符.直线电机选型 语法:chr(ascii) 参数: 参数 描述 ascii  必须,指定ASCII值 说明:chr() 函数从指定的 ...

  6. Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)

    一.前言 今天我们继续来讲述逆向的知识,今天我们来讲什么呢?我们在前一篇文章中介绍了关于SO文件的格式,今天我们继续这个话题来看看如何修改SO文件中的内容,看一下我们研究的主题: 需求:想汉化一个Ap ...

  7. 【CF1210D】Konrad and Company Evaluation(vector,图论)

    题意:有i个人,m对两两之间的关系,第i个人初始的薪水为i,有q次操作,第i次操作会把v[i]号的薪水提升成n+i 如果两个人之间存在关系,薪水高的会向薪水低的炫耀 定义u,v,w为一个三元组,当u向 ...

  8. [CSP-S模拟测试]:tree(DP)

    题目传送门(内部题57) 输入格式 第一行包含一个数:$n$表示树的节点数.接下来$n-1$行,每行包含两个数:$u,v$表示无根树的一条边. 输出格式 输出$n$行,第$i$行包含一个浮点数,保留三 ...

  9. JS基础入门篇(六)— 数据类型

    1.数据类型 数据类型:我感觉就是对数据的种类进行分类.就好比把人分为儿童,青少年,中年,老年一样. 基础数据类型: Number(数字),String(字符串),Null(空),Undefined( ...

  10. CSS定位,转载的

    转自:http://www.cnblogs.com/jiqing9006/archive/2012/07/26/2610586.html 层级关系为:<div ——————————— posit ...