使用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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:http://blog.51cto.com/5899363/2113086

时间: 2024-07-28 22:34:13

使用JPA + Eclipselink操作PostgreSQL数据库的相关文章

gitlab操作postgresql 数据库

切换到  gitlab-psql 用户下. 然后使用gitlab内部的psql命令进入postgresql数据库内部. $ /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 然后操作数据库的CRDU.

Python 操作 PostgreSQL 数据库

我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg2是非常小,快速,稳定的. 您不需要单独安装此模块,因为默认情况下它会随着Python 2.5.x版本一起发布. pip3 install python-psycopg2pip3 install psycopg2-binary 连接到数据库 以下Python代码显示了如何连接到现有的数据库. 如果数

Jmeter_实现操作postgresql数据库

[环境] ①Jmeter版本:3.2,JDK:1.8: ②postgresql驱动包postgresql-9.3-1103.jdbc4,将该jar包置于..\apache-jmeter-3.2\lib\文件下: 下载链接:https://pan.baidu.com/s/1c2q94La  提取密码:cb5h [Jmeter配置] (1)添加配置元件"JDBC Connection Configuration": 作用:用于配置JDBC连接pg数据库: 配置: ①Validation Q

python操作postgresql数据库

import psycopg2 conn = psycopg2.connect(database="baoxin", user="odoo", password="odoo", host="127.0.0.1", port="5432") cur = conn.cursor() cur.execute("CREATE TABLE test(id serial PRIMARY KEY, num in

PostgreSQL数据库postgresql.conf部分相关参数

listen_addresses:#指定数据库用来监听客户端连接的TCP/IP地址,默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求,可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求 listen_addresses = '0.0.0.0' #监听IPv4的所有IP. port:#指定数据库监听户端连接的TCP端口.默认值是5432 max_conn

几个PostgreSQL数据库操作总结

创建表 语法:如下 create table     table_name     (column_name         column_type(parametes)options,…); 注意: ⑴     SQL语句对大小写不敏感 ⑵     通常忽略空白—应该使用空白使SQL命令具有更好的可读性. ⑶     表名和字段不能和SQL的保留字相同 一下示例师范如何创建表cd_collection: create      table         cd_collection ( id 

postgresql数据库安装及简单操作

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用. 一.安装 首先,安装PostgreSQL客户端. sudo apt-get install postgresql-client 然后,安装PostgreSQL服务器. sudo apt-get install postgresql 正常情况下,安装完

[转载]php连接postgreSQL数据库及其操作(php5,postgreSQL9)

数据库连接:dbconn.php<?php$conn = pg_connect("host=localhost port=5432 dbname=myd user=postgres password=postgres"); if($conn){    print "has connected" . "<br>";}else{    print "connect failure" . "<br&

PowerDesigner反向工程PostgreSQL数据库

1. 环境准备: a)         安装PowerDesigner,以PowerDesigner15.1为例 b)         安装java jdk,以jdk-7-windows-i586为例 c)         下载postgressql jdbc驱动jar包,以postgresql-8.1-415.jdbc2.jar为例 2. 远程连接PostgreSQL数据库 a)         打开PowerDesigner b)         新建一个空白物理数据模型 点击PowerDe