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. tomcat启动一闪而过解决办法报错The CATALINA_HOME environment variable is not defined correctly

    解决办法: Tomcat无论在windows上还是Linux上只需要吧安装包传上去解压就行,不需要配置环境变量,吧之前有可能别人别配置的环境变量统一删掉即可(网上一大堆说需要配置的都是胡说八道).把以 ...

  2. CSS9:动态 REM-手机专用的自适应方案

    CSS9:动态 REM-手机专用的自适应方案 动态 REM是手机专用,是如何适配所有手机的方案,不是响应式方案,例如 : taobao.com 是专门的PC端m.taobao.com 是专门的手机端, ...

  3. python读文件的4种方式

    1.直接打开就读 with open('filepath','r') as f: for line in f: print(line) print('一行数据') 虽然f是一个文件实例,但可以通过以上 ...

  4. python在mapreduce运行Wordcount程序

    首先脚本文件: mapper.py: #!/usr/bin/env python import sys for line in sys.stdin: line = line.strip() words ...

  5. Prometheus指标采集常用配置

    一.node-exporter配置textfile收集器 textfile收集器作用: 运行暴露自定义指标.例如,需要在某个被监控节点上添加一个地理位置的指标. node-exporter会自动启动t ...

  6. Web核心之Request对象

    HTTP协议中Request请求部分格式 //请求行(这种是POST类型的请求) POST /HttpServleLogin.html HTTP/1.1 //请求头(User-Agent里有Firef ...

  7. python3用pygame实现播放音乐文件

    import pygameimport time #导入音乐文件file = r'C:\1.wav'pygame.mixer.init()track = pygame.mixer.music.load ...

  8. 启动kafka集群,关闭kafka集群脚本

    启动kafka集群,关闭kafka集群脚本 在$KAFKA_HOME/bin下新建如下脚本文件 start-kafka.sh #!/bin/bash BROKERS="mini41 mini ...

  9. 【HDOJ6606】Distribution of books(二分,BIT)

    题意:给定一个长为n的数组,要求挑它前缀的一段,将其分成k段,使得每段和的最大值最小 1<=k<=n<=2e5,abs(a[i])<=1e9 思路: 刚开始写了线段树TLE 改 ...

  10. python的os.path.join()

    在python中,os.path.join()是用来拼接目录路径得.同类型得还有join(),os.path.spilt(),spilt()三个函数.1,os.path.join(),将join()里 ...