(注:本系列笔记是在学习尚硅谷JPA课程的时候写下的,结合课程内容和自我理解,方便自己以后进行复习)

一、在创建JPA之前看看什么是JPA

  1、Java Persistence API:用于对象持久化的 API

  2、Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层

  3、结合下面两幅图片进行理解:

  JPA功能示意图:

  

                 Figure 1.1

  JDBC功能示意图:

  

                Figure 1.2

  

  4、JPA和Hibernate的关系 

  JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):

    ——JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现

    ——Hibernate 是实现:Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现

  从功能上来说, JPA 是 Hibernate 功能的一个子集

二、创建JPA工程之前需要解决一个问题:at least one user library must be selected

  问题描述:在Workspace中右键,new → JPA Project,选择JAP version为2.0。此时,向导中的Finish是灰色的,不能够点击完成。没办法,只好点击Next看看,一路Next下去看到如下图Figure 2.1所示这样一个问题:at least one user library must be selected。

    

                  Figure 2.1

  没有办法创建JAP工程,只好网上搜索,找到一篇歪果仁写的一篇博文,很好的解决了我这个问题:

  http://www.javabeat.net/eclipselink-jpa-installation-configuration/

  下面将博文要点整理成如下中文:

  这篇文章将向你介绍如何安装和使用EclipseLink-JPA:

  1、安装EclipseLink JAR 文件

    ①、eclipselink.jar

    ②、javax.persistence.source_2.1.0.v201304241213.jar

    ③、javax.persistence_2.1.0.v201304241213.jar

  • 将下载好的EclipseLink 2.5.2压缩包解压到任何你想用于完成安装的文件夹中。我将文件解压到 “.\workspace\libraries\EclipseLink 2.5.2” 文件夹下。

  

  2、在Eclipse IDE中设置 JPA Facet

  首先在Eclipse中创建一个动态web工程,为我们后续添加 JPA facet 作准备。步骤如下:

    ①、打开 Eclipse IDE

    ②、创建一个动态的Web工程

    ③、在刚刚创建好的工程上点击右键,选择properties

    ④、在左侧那一列中点击 “Project Facets”

    ⑤、然后在右侧选中 JPA 选项,同时选择 JPA version 为2.0。如下图Figure 2.2所示:

  

                      Figure 2.2

  这里有一个要注意的,因为有后续的很多设置要完成,所以在选择JPA和Version以后不能直接点击OK,而是要点击上图中下面部分标注的“Further configuration ...”链接来进行后续配置。这个操作将会打开一个新的对话框用于配置JPA Facet。

  

  3、添加 JPA Facet

  新弹开的对话框如下图Figure 2.3所示。用户可以在这个对话框中添加必须的库来实现JPA。

  

                  Figure 2.3

    ①、对话框上端的platform默认情况下是“Generic 2.0”,我们可以依据我们自己下载的EclipseLink版本来进行修改。我下载的是2.5.2版本,所以如Figure 2.3所示选择platform为EclipseLink 2.4.x/2.5.x版本

    ②、JPA implementation菜单不需要做任何修改。“User Library” type将会允许用户添加JPA库

    ③、点击右侧的“Manager Libraries”。除此之外,另外一个实现方法就是点击“Download Library”来进行下载库,但是这里下载实在是太慢,所以不使用它。

    ④、点击“Manager Libraries”以后会弹出一个对话框,在新的对话框中点击“New”。

    ⑤、“New”以后又会弹出一个对话框,要我们填写库的名字,我填写为“EclipseLink 2.5.2”。点击OK。

  到目前为止,我们已经做好了添加jar包的前期准备。接下来就是添加上面“1、安装EclipseLink JAR 文件”这一步中提到的那三个jar包了。到目前的效果图如下Figure 2.4:

  

                    Figure 2.4

  4、配置Library

  配置Library需要我们添加JPA实现所必须的jar包。按照下面的步骤来完成配置:

    ①、点击“Add External JARs...”(也就是Figure 2.4图中红色框中的按钮)

    ②、添加 eclipselink.jar,它位于“.\workspace\libraries\EclipseLink 2.5.2\jlib”文件夹下面

    ③、添加 “.\workspace\libraries\EclipseLink 2.5.2\jlib\jpa”文件夹下 javax.persistence.* 开头的jar包(也就是前面说的后两个jar包)。如Figure 2.5所示

  

                      Figure 2.5

    ④、点击下端的OK按钮,会关闭添加library的对话框。

    ⑤、但是,为了避免JPA Facet报“At least one user library must be selected”这个错误。我们选择刚刚生成的library

    ⑥、点击OK。

  到现在为止,前面提到的At least one user library must be selected错误已经得到了解决。到这里我们再回头去创建一个JPA工程就没有什么问题了。但是,歪果仁的这篇文章的目的是为了在动态Web工程中创建一个JPA环境。

  这个是很有必要的,想想也是,现在单纯为了学习建了一个JPA工程,以后做Web工程的时候就需要创建一个动态Web工程了。

  而且,后面的两个步骤还是挺有意思的,所以,这里是插叙,下面继续翻译歪果仁的文章。

  到现在为止我们创建的动态web工程已经能够使用JPA了。但是,JPA是一个和关系型数据库相联系的持久化服务。所以,接下来我们就需要创建一个数据库连接

  5、创建数据库链接(新意在于可以在配置的同时完成链接的测试工作)

  一旦你创建完成了一个user library,接下来的工作就是创建一个数据库连接。最后一个对话框应该如Figure 2.6所示:

  

                  Figure 2.6

  为了建立数据库的链接,按照以下步骤进行:

    ①、点击“Add Connection...”超链接(Figure 2.6中有标注)

    ②、Connection Profile 对话框将会弹出

    ③、选择工程中在对话框中选择工程使用的数据库种类。本教程中假设你使用的是MySQL数据库。

    ④、修改链接的名字,点击Next

    ⑤、填写“Specify a Driver and Connection Details”表单。在最初的时候可能弹出的对话框中没有驱动可以选择,这个时候我们需要手动的添加相关驱动,步骤如Figure 2.7和Figure2.8所示:

  

                  Figure 2.7

  

                  Figure2.8

  点击上面的Figure 2.8中的OK以后,新的driver就添加完成了。随后就是在Figure 2.9中修改数据库名,填写用户名和密码,然后点击“Test Connection”测试数据库连接是否成功:

  

                Figure 2.9

  有意思的是,测试通过会弹出一个 ping successed! 提示框,如Figure 2.10所示:

  

              Figure 2.10

    ⑥、在第⑤步的末尾,我们已经为JPA工程准备好了数据库连接

    ⑦、点击Figure 2.9中的finish按钮

    ⑧、点击finish以后对话框将会关闭,所以要确定连接已经被选中

    ⑨、点击,OK关闭Further configuration dialog。继续点击OK关闭project facets

  现在,你已经创建完成了一个新的动态web工程,同时为它配置好了JPA环境。在eclipse左侧的导航栏里面你可以在src下看见一个META-INF文件夹了,该文件夹下面有一个persistence.xml文件。

  6、配置persistence.xml文件

  如果你按照步骤进行到这里了,而且所有步骤都成功操作了。现在是时候“编辑”persistence.xml文件的时候了,这个文件将会帮助我们连接我们的数据库。

  为了配置persistence.xml文件,你需要双击打开它。它会在单独的一个xml文件编辑器中打开,在这个编辑器的底端会有很多的标签。现在我们按照以下的步骤完成persistence.xml文件的配置工作:

    ①、导航到Connection标签

    ②、将transaction type选择为“Resource Local”。这个改变将会激活EclipseLink connection pool。

    ③、点击“populate from connection”。见Figure 2.11

    ④、选择之前配置好的链接。见Figure 2.12

    ⑥、用 Ctrl + s 来保存文件。见Figure 2.13

    ⑦、导航到Source标签。你将会看到用于数据库连接的最小配置。

  

                  Figure 2.11

  

                    Figure 2.12

  

                        Figure 2.13

  看看xml中的源码如下:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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">
<persistence-unit name="a" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="tiger123"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
</properties>
</persistence-unit>
</persistence>

  

1、创建一个JPA project(解决“at least one user library must be selected”问题)的更多相关文章

  1. 使用eclipse插件创建一个web project

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  2. myeclipse 第一个web project

    创建一个java project. 不行...js文件是javascript代码的文件.应该放在web目录下...java文件是后台管理的程序代码.放在src目录下...不同的...   那是不是把所 ...

  3. 在eclipse中创建一个Maven项目

    1. 首先判断eclipse有没有自带Maven Window –> Perferences 如果有Maven,那就是自带了maven插件,如果没有,需要自行安装. 2.配置maven 2.1. ...

  4. PS网页设计教程XXVI——如何在PS中创建一个专业的网页布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  5. Eclipse + Jersey 发布RESTful WebService(一)了解Maven和Jersey,创建一个WS项目(成功!)

    一.下文中需要的资源地址汇总 Maven Apache Maven网站 http://maven.apache.org/ Maven下载地址: http://maven.apache.org/down ...

  6. Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)

       原文英文地址为:Creating an OpenGL Window (Win32),翻译的chm中文格式文档下载地址为:OpenGL教程电子书(chm格式)中文版,源代码在官网上也可以下载到,每 ...

  7. 创建一个maven web project

    几经周折总算是找到了和高杨学长一样的web  project的方法.感谢学长的一语点醒.我之前以为,既是maven又是web project的项目得要是通过dynamic web project转换到 ...

  8. Selenium 使用Eclipse+TestNG创建一个Project中遇到的问题

    继续之前的学习,对于一个没有太多计算机基础的人,刚学习selenium,最大的问题就是不知道该如何入手,最简单的办法就是录制脚本之后导入. 但是导入的时候也会出现一些问题,就是该导入到哪里?如何导入? ...

  9. 单独创建一个Android Test Project 时junit 的配置和使用

    现在的集成ADT后Eclipse都可以直接创建Android Test Project 如图所示: 命名后选择你要测试的单元程序,比如我自己准备测试sms,便可以如图所示那样选择 本人新建的测试工程为 ...

随机推荐

  1. 小甲鱼汇编语言006第二章 寄存器(CPU工作原理)01

    http://baidu.ku6.com/watch/09215216064281951074.html?page=videoMultiNeed

  2. centos 6.4 apache开启gzip方法

    系统概况,主机CentOS6.4  Apache2.4 php5.3.6 mysql5.5 开始:首先得确认apache是否已经加载了mod_deflate模块 1.httpd -M 在结果中查看是否 ...

  3. yii2怎样写规则可以隐藏url地址里的控制器名字

    yii2怎样写规则可以隐藏url地址里的控制器名字,例如现在的是***.com/site/index.html要变成***.com/index.html '<action:index>.h ...

  4. div+css登陆界面案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. VBS基础篇 - RegExp 对象

    正则表达式(RegExp)对象下面的代码说明了RegExp对象的用法: Function RegExpTest(patrn, strng) Dim regEx, Match, Matches '创建变 ...

  6. 用protobuf编译时报错:protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object file: No such file or directory 的解决方法

    解决办法:export LD_LIBRARY_PATH=/usr/local/lib

  7. centos 7 有点意思

    Centos 7 防火墙 Centos尼马换了防火墙,名叫firewalld,还有iptables命令,这就叫坑爹.整了半个世纪才知道,他换了防火墙.添加滤镜,停止iptables都打不开80端口,简 ...

  8. 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。

    // test20.cpp : 定义控制台应用程序的入口点. // include "stdafx.h" include include include include inclu ...

  9. find查找指定类型文件并删除

            问题描述:                      查找当前目录下指定类型的文件              问题解决:                     (1)find命令   ...

  10. Windows Server 2008下共享资源访问走捷径 (不用用户名 和 密码 访问共享)

    1. 启用来宾帐号2. 共享目录添加“Guest”帐号3. “gpedit.msc”,打开对应系统的组策略编辑窗口;在该编辑窗口的左侧显示区域,依次展开“本地计算机策略”/“计算机配置”/“Windo ...