使用JPA + Eclipselink操作PostgreSQL数据库
首先确保您已经安装了PostgreSQL。您可以参考我这篇文章PostgreSQL扫盲教程。
使用Eclipse创建一个新的JPA project:
Platform选择EclipseLink,作为JPA的provider之一。
在Eclipse里自动生成的project如下图所示:
用下列xml的内容覆盖自动生成的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="jerryjpa" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>jpatest.Person</class> <properties> <property name="eclipselink.ddl-generation" value="create-tables" /> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/postgres"/> <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> <property name="javax.persistence.jdbc.user" value="postgres"/> <property name="javax.persistence.jdbc.password" value="test_password"/> </properties> </persistence-unit> </persistence>
新建一个Java class:
package jpatest; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.NamedQuery; import javax.persistence.Table; @Entity @Table(name = "T_PERSON") @NamedQuery(name = "AllPersons", query = "select p from Person p") public class Person { @Id @GeneratedValue private long id; @Basic private String firstName; @Basic private String lastName; public long getId() { return id; } public void setId(long newId) { this.id = newId; } public String getFirstName() { return this.firstName; } public void setFirstName(String newFirstName) { this.firstName = newFirstName; } public String getLastName() { return this.lastName; } public void setLastName(String newLastName) { this.lastName = newLastName; } }
现在可以写测试程序了:
package jpatest; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class Test { public static void main(String[] args) { String persistenceUnitName = "jerryjpa"; EntityManagerFactory factory = Persistence.createEntityManagerFactory(persistenceUnitName); EntityManager entityManager = factory.createEntityManager(); EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); Person user = new Person(); user.setFirstName("Jerry_SAP"); user.setLastName("Wang"); entityManager.persist(user); transaction.commit(); entityManager.close(); factory.close(); System.out.println("done"); } }
成功执行后,在PostgreSQL的Admin UI上能看到测试Java程序里用JPA插入数据库的记录:
本文完整的源代码和所需的库文件可以在我的github上找到。
- eclipselink-2.5.1.jar
- javax.persistence-2.1.0.jar
- postgresql-42.1.1.jar
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用
JPA(Java Persistence API)的实现Provider有Hibernate,OpenJPA和EclipseLink等等。 本文介绍如何通过JPA + Eclipse连接SAP云平台上的HANA数据库实例。 1. 登陆SAP云平台Cockpit,创建一个新的HANA DB实例: 设置数据库ID和System user的密码。 创建成功后,HANA DB实例状态为CREATING: 稍等片刻后,状态变为STARTED,可用。 2. 接下来就可以开发Java应用通过JPA操作这个云端的数据库实例了。 SAP云平台neo环境的SDK下自带了一个JPA的hello world应用,位于文件夹samples下面,名称为persistence-with-jpa: 直接import到Eclipse里,targeted Runtimes选择为Java Web Tomcat 8: 再将该应用从Eclipse部署到SAP云平台上: 部署成功后,在SAP云平台Cockpit里得到该应用的访问url: 3. 将部署完成的Java应用与第一步创建的HANA DB实例进行绑定: 绑定成功,这样该J...
- 下一篇
JDBC + SAP云平台 = 运行在云端的数据库应用
在前一篇文章JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用我介绍了如何通过JPA和EclipseLink操作部署在SAP云平台上的HANA数据库实例。 在这篇文章里,我们使用JDBC代替JPA和Eclipse来完成同样的任务。 通过这个链接下载例子程序。 点击该超链接下载Java Web Tomcat 8 SDK。 例子程序位于该SDK的samples文件夹下。 导入至Eclipse之后,同样需要将其Targeted Runtimes改为Java Web Tomcat 8. 将该应用部署到SAP云平台上: 和JPA + EclipseLink的例子不同,在JDBC的这个例子里,模型类Person不需要再加上任何Annotation,比较这两个solution的Person.java实现: 相反,JDBC的解决方案,HANA数据库的插入和读取都由PersonDAO.java来实现。 云端部署完成后,同样给该JDBC应用创建一个和HANA数据库实例的绑定: 之后就可以在Cockpit里找到该应用的访问url: 然后就能在PC和手机上访问该应用: 要获取更多...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19