一、创建且运行JPA工程
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&characterEncoding=utf8&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工程的更多相关文章
- Visual Studio 2013创建并运行Cocos2d-x工程
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.准备: 我们得先把Visual Studio 2013安装好:可以去MSDN官网下载,在安装好 2.安装好vs之后,在cmd(终端)创 ...
- JavaEE开发之SpringBoot工程的创建、运行与配置
本篇博客我们就来聊一下如何使用Eclipse+STS插件来创建Spring Boot的工程.Spring Boot可以使我们更容易的使用Spring框架,在Spring Boot中自动配置了好多东西, ...
- 手把手教你解决无法创建 JPA 工程的问题
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...
- 解决无法创建 JPA 工程的问题
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm. 我的配置: – Python 2.7.11 – Pycharm Professional 5.0. ...
- 实验0 安装GLUT包及工程的创建与运行
下面将对Windows下在MicroSoft Visual C++2010(简称MSVC)环境下的OpenGL编程进行简单介绍. 1.安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们 ...
- 基于eclipse创建android的helloworld工程
基于eclipse创建android的helloworld工程 之前用过Android studio感觉很慢,决定采用eclipse来学习Android开发.下面来看是怎么创建的. 选择File--- ...
- 终于用scons创建了一个MDK工程
这几天我在学着怎么使用RT-Thread.起初只想用一下里面的RTGUI,却一直没成功,功力实在不行啊. RT-Thread用了scons来创建工程,似乎还能编译,还有很多可配置项,很是方便.于是我想 ...
- 【Android Developers Training】 1. 创建一个Android项目工程
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
随机推荐
- tomcat启动一闪而过解决办法报错The CATALINA_HOME environment variable is not defined correctly
解决办法: Tomcat无论在windows上还是Linux上只需要吧安装包传上去解压就行,不需要配置环境变量,吧之前有可能别人别配置的环境变量统一删掉即可(网上一大堆说需要配置的都是胡说八道).把以 ...
- CSS9:动态 REM-手机专用的自适应方案
CSS9:动态 REM-手机专用的自适应方案 动态 REM是手机专用,是如何适配所有手机的方案,不是响应式方案,例如 : taobao.com 是专门的PC端m.taobao.com 是专门的手机端, ...
- python读文件的4种方式
1.直接打开就读 with open('filepath','r') as f: for line in f: print(line) print('一行数据') 虽然f是一个文件实例,但可以通过以上 ...
- python在mapreduce运行Wordcount程序
首先脚本文件: mapper.py: #!/usr/bin/env python import sys for line in sys.stdin: line = line.strip() words ...
- Prometheus指标采集常用配置
一.node-exporter配置textfile收集器 textfile收集器作用: 运行暴露自定义指标.例如,需要在某个被监控节点上添加一个地理位置的指标. node-exporter会自动启动t ...
- Web核心之Request对象
HTTP协议中Request请求部分格式 //请求行(这种是POST类型的请求) POST /HttpServleLogin.html HTTP/1.1 //请求头(User-Agent里有Firef ...
- python3用pygame实现播放音乐文件
import pygameimport time #导入音乐文件file = r'C:\1.wav'pygame.mixer.init()track = pygame.mixer.music.load ...
- 启动kafka集群,关闭kafka集群脚本
启动kafka集群,关闭kafka集群脚本 在$KAFKA_HOME/bin下新建如下脚本文件 start-kafka.sh #!/bin/bash BROKERS="mini41 mini ...
- 【HDOJ6606】Distribution of books(二分,BIT)
题意:给定一个长为n的数组,要求挑它前缀的一段,将其分成k段,使得每段和的最大值最小 1<=k<=n<=2e5,abs(a[i])<=1e9 思路: 刚开始写了线段树TLE 改 ...
- python的os.path.join()
在python中,os.path.join()是用来拼接目录路径得.同类型得还有join(),os.path.spilt(),spilt()三个函数.1,os.path.join(),将join()里 ...