文章目录

  • JPA 是什么?
  • 关于Eclipse Link
  • 在Eclipse中建立 JPA项目
  • 从表导出JPA注解映射的实体类
  • 从表导出XML映射

JPA 是什么?

Java Persistence API, Java持久化接口。
是官方的数据访问的规范和接口。
针对此接口, 有不同的实现。比如: Hibernate, Top Link(Eclipse Link)

关于Eclipse Link

来源于TopLink, TopLink是Oracle提供的数据接口的实现,应用在 Weblogic的应用服务器上。 后来捐给了 Eclipse, Eclipse很高兴的发扬光大, 改了个名字, 而且很自然的集成到 Eclipse的IDE中了。

在Eclipse中建立 JPA项目

  1. File->New->Other
  2. 找到JPA目录下的 JPA Project

3.下一步直到出现如下页面

因为JPA只是接口, 所以需要下载实现。 点击下载按钮, 下载之后会出现如上效果。

下面有一个 Add connection,可以添加数据库连接, 有连接之后后面就可以把数据库的表导出为实体类。

这里不添加也可以在项目创建完成之后,在右键单击项目进入属性页面的 JPA中设置。

  1. 点击Finish创建完成, 目录结构如下:

    默认会创建一个persistence.xml的配置文件。

从表导出JPA注解映射的实体类

在项目运行的时候,连接不同的数据库, 需要下载对应的驱动, 并导入到项目的路径中

从Table导出实体类的方式:
右键  New 选择JPA Entities from Tables

导出的是基于注解的类, 类的映射会自动加到persistence.xml。
这里导出的是User 表,表很简单,只有id和name两个属性。 默认导出到 model包下

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unit name="jpa"><class>model.User</class></persistence-unit>
</persistence>

从表导出XML映射

基于注解的映射是JPA较为常见的方式,如有已经有类或是习惯hibernate早期XML的映射配置, 要使用 XML的方式配置映射,选择 EclipseLink下面的Dynamic Entities from Tables 导出XML的映射。

1.会产生配置文件: eclipselink-orm.xml

<?xml version="1.0" encoding="UTF-8"?> select u from User u


2.会把产生的文件添加到persistence.xml

<?xml version="1.0" encoding="UTF-8"?> META-INF/eclipselink-orm.xml ```

要运行测试的话, 需要做一些改动, 以 XML为例,附上改动后完整的代码:

  1. eclipselink-orm.xml
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eclipse.org/eclipselink/xsds/persistence/orm http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_1.xsd"><named-query name="User.findAll"><query>select u from User u</query></named-query><entity class="model.User" access="VIRTUAL"><attributes><id name="id" attribute-type="String"></id><basic name="name" attribute-type="String"></basic></attributes></entity>
</entity-mappings>
  1. persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unit name="jpaProj"><provider>org.eclipse.persistence.jpa.PersistenceProvider</provider><mapping-file>META-INF/eclipselink-orm.xml</mapping-file><properties><property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/ssmi?serverTimezone=UTC" /><property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /><property name="javax.persistence.jdbc.user" value="root" /><property name="javax.persistence.jdbc.password" value="123456" /></properties></persistence-unit>
</persistence>
  1. User.java
public class User {private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

4.JpaDemo.java

public class JpaDemo {/*** @Title: main* @Description: TODO* @param args*/public static void main(String[] args) {EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpaProj");EntityManager entityManager = entityManagerFactory.createEntityManager();entityManager.getTransaction().begin();// List<User> result = entityManager.createNamedQuery("User.findAll").getResultList();List<User> result = entityManager.createQuery("select u " + "from User u ").getResultList();for (User user : result) {System.out.println(user.getName());}entityManager.getTransaction().commit();entityManager.close();}}

注意: 类和表的名字保持一致。


Eclipse JPA Project创建相关推荐

  1. eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)

    Eclipse 构建 JPA Project 时,需要指定 JPA的实现,如:下图中的EclipseLink 2.7.3,这其实是一个自定义的用户库. 看看,这个用户库包含persistence接口和 ...

  2. eclipse右下角一直提示“jpa project change event handler” 用着很卡

    问题描述 在是用eclipse时,右下角一直提示"jpa project change event handler" ,用着非常卡 解决方法 Preferences–>Ins ...

  3. eclipse 使用maven 创建springmvc + mybatis

    接着eclipse 使用maven 创建纯spring mvc项目 毕竟项目都要访问数据库的, 所以加上mybatis的支持也就是网上大多时候说的 SSM框架的搭建(Spring + Spring M ...

  4. jPA自动创建数据库表的一些配置

    2019独角兽企业重金招聘Python工程师标准>>> jPA自动创建数据库表的一些配置 hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如 ...

  5. eclipse maven maven-archetype-webapp 创建失败

    如果在eclipse中发现创建maven失败,大部分的原因是因为本地仓库坏了,或是少东西了,最直接的方法就时删掉重新下载就好了 转载于:https://www.cnblogs.com/xiaohuih ...

  6. 如何在eclipse jee中创建Maven project并且转换为Dynamic web project

    转自:http://www.javaniu.com/maven-jee-dynamic-web-project.htm 注意:该文档只针对以下eclipse版本,如图 一.在eclipse的官方站点下 ...

  7. eclipse 中 project facets

    阅读数:2347 facets中文翻译为:(事物的)面,方面 在eclipses中的facets可以理解为:项目的特性,某一方面功能.主流 IDE (Eclipse IDEA) 都提供了 facet ...

  8. eclipse怎么创建web项目html,eclipse入门之创建第一个web程序(jsp测试环境)

    1.首先我们打开eclipse 2.下面我们去eclipse配置tomcat a) 菜单栏选择window--preferences b) 在向导视图中找到Server c) 在Server点击箭头, ...

  9. 为Eclipse plug-in(插件)创建语言包

    在我们的应用中,难免会遇到国际化的问题,ECLIPSE RCP给我们提供了很好的方案,甚至可以在后期批处理完成,但如果是其它插件未提供我们需要的语言版呢?我们可以如何为它们提供语言包呢? 一个简单的例 ...

最新文章

  1. 4104 oracle 数据文件名,Oracle 11g 常遇到ora-01034错误,这是为什么?
  2. hdu5491(2015合肥网络赛H题)
  3. java附加属性_Java 9附加流
  4. 零基础mysql项目实例_MySQL-零基础开发
  5. 最可怕的八种黑客手段,网络攻击真是无孔不入!【转载】
  6. 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
  7. 解决默写浏览器中点击input输入框时,placeholder的值不消失的方法
  8. 如何避免delete和delete[]的尴尬?
  9. Android中导入Unity项目,界面点击事件失去焦点问题
  10. @Bean和@Componet区别
  11. VBS 控制 Windos 系统音量 及视频播放
  12. 常用通信光缆型号是如何命名的
  13. 《学习Oracle从这里开始》之常用SQL篇
  14. 轻量级私有云存储企业主要功能探析
  15. 《objective-c程序设计》学习笔记
  16. JavaScript中onblur事件
  17. java邮件数据库_javamail-demo(完整源码+数据库)
  18. 女程序猿做了个梦,各路大神惊现神级评论!
  19. 达人评测 i5 1155G7和i5 1135G7的差距大不大
  20. 伺服器对比:S3010,S-U400

热门文章

  1. 为什么易燥易怒以及柔润相处的练习
  2. iOS 不通过改变url 与web JS 交互
  3. 最小生成树(hdu1233还是畅通工程)
  4. ant copy 复制文件用法
  5. 单元测试 - mock异常
  6. 【报告分享】致胜直播带货十大法则.pdf(附下载链接)
  7. Python实战从入门到精通第二讲——类
  8. [Linux] 内核模块proc使用 实例:统计所有进程的信息
  9. 从 200 多篇顶会论文看预训练语言模型研究进展
  10. 升级换代!Facebook全新电商搜索系统Que2Search