应用程序5步应用jpa--openjpa

原创 2011年01月10日 17:26:00

5步展示openjpa用于应用程序(j2se)

 

环境j2se1.6 , eclipse(要求支持maven项目环境).

 

注: 类文件代码来源于Apache OpenJPA示例代码

 

1.用eclipse建立maven项目。如果搞不清maven那就是另外一回事了!

2.在增加依赖包,这里用的是oracle数据库

     <dependency>
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa-persistence-jdbc</artifactId>
        <version>2.0.1</version>
    </dependency>
     <dependency>   
        <groupId>ojdbc</groupId>
        <artifactId>ojdbc</artifactId>
        <version>6</version>
        <scope>runtime</scope>
    </dependency>

3.写代码

a.持久化类

 

文件message.java

 

import java.util.*;
import javax.persistence.*;

/**
 * A very simple persistent entity that holds a "message", has a
 * "created" field that is initialized to the time at which the
 * object was created, and an id field that is initialized to the
 * current time.
 */
@Entity
public class Message {
    @Id
    private long id = System.currentTimeMillis();

    @Basic
    private String message;

    @Basic
    private Date created = new Date();

    public Message() {
    }

    public Message(String msg) {
        message = msg;
    }

    public void setId(long val) {
        id = val;
    }

    public long getId() {
        return id;
    }

    public void setMessage(String msg) {
        message = msg;
    }

    public String getMessage() {
        return message;
    }

    public void setCreated(Date date) {
        created = date;
    }

    public Date getCreated() {
        return created;
    }
}

 

 

b.业务操作类

Main.java

import java.util.*;
import javax.persistence.*;

public class Main {
       @SuppressWarnings("unchecked")
        public static void main(String[] args) {
            // Create a new EntityManagerFactory using the System properties.
            // The "hellojpa" name will be used to configure based on the
            // corresponding name in the META-INF/persistence.xml file
            EntityManagerFactory factory = Persistence.
                createEntityManagerFactory("hellojpa", System.getProperties());

            // Create a new EntityManager from the EntityManagerFactory. The
            // EntityManager is the main object in the persistence API, and is
            // used to create, delete, and query objects, as well as access
            // the current transaction
            EntityManager em = factory.createEntityManager();

            // Begin a new local transaction so that we can persist a new entity
            em.getTransaction().begin();

            // Create and persist a new Message entity
            em.persist(new Message("Hello Persistence!"));

            // Commit the transaction, which will cause the entity to
            // be stored in the database
            em.getTransaction().commit();

            // It is always good practice to close the EntityManager so that
            // resources are conserved.
            em.close();

            // Create a fresh, new EntityManager
            EntityManager em2 = factory.createEntityManager();

            // Perform a simple query for all the Message entities
            Query q = em2.createQuery("select m from Message m");

            // Go through each of the entities and print out each of their
            // messages, as well as the date on which it was created
            for (Message m : (List<Message>) q.getResultList()) {
                System.out.println(m.getMessage()
                    + " (created on: " + m.getCreated() + ")");
            }

            // Again, it is always good to clean up after ourselves
            em2.close();
            factory.close();
        }
}

 

4.在META-INF下建配置文件 persistence.xml (META-INF在包的顶级目录)

 

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_1_0.xsd"
  version="1.0" >
  <persistence-unit name="hellojpa">
    <description>JPA Application Client</description>
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
    <class>as.jpa.Message</class>
    <properties>
      <property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:test" />
      <property name="openjpa.ConnectionDriverName" value="oracle.jdbc.driver.OracleDriver" />
      <property name="ConnectionUserName" value="test" />
      <property name="ConnectionPassword" value="test" />
      <property name="openjpa.jdbc.SynchronizeMappings" value="false" />
    </properties>
  </persistence-unit>
</persistence>

 

这里用oracle数据库. class参数指定为Message类(注意包与实际对应)

 

5.在数据库里建Message的表

create table message (id number,message varchar(32),created date)

 

6.到此就可以编译运行了。

 

 

 

Excel导入数据到QC

Excel导入数据到QC 安装QCMSExcelAddin.rar程序,若Office为2007则安装成功后,会在Excel菜单栏---工具中多一个Export To Quality Cente...
  • kash_chen007
  • kash_chen007
  • 2013年01月31日 15:13
  • 2058

w3wp.exe - 应用程序错误 应用程序发生异常 unknown software exception 的解决方法

w3wp.exe - 应用程序错误 应用程序发生异常 应用程序发生异常   未知的软件异常   (0xc06d007e),位置为   0x7c815e02           环境是:Win...
  • English0523
  • English0523
  • 2017年04月17日 10:21
  • 1070

从生活角度学习应用程序、虚拟目录、应用程序池(解惑篇)

概要    应用程序、虚拟目录、应用程序池这三个概念在上一篇中一看就会之—利用IIS服务发布网站(实践篇)上中多次涉及,所有我们今天就重点来理解一下这几个概念。   应用程序 应用程序和软件的区别  ...
  • zwk626542417
  • zwk626542417
  • 2013年08月09日 10:29
  • 7116

进程与应用程序的区别

一、进程与应用程序的区别      进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系...
  • you_off3
  • you_off3
  • 2012年04月14日 16:29
  • 10459

操作IIS,添加删除应用程序

http://bbs.csdn.net/topics/300031087 http://bbs.csdn.net/topics/90360445
  • zhanglong_longlong
  • zhanglong_longlong
  • 2016年01月09日 13:22
  • 476

IIS无法删除应该程序池 因为它包含1个应用程序

IIS无法删除应该程序池 因为它包含1个应用程序, 问题如下图所示: 产生此问题的原因: 在站点下发布了虚拟目录A,又在虚拟目录A下发布虚拟目录B,都选择使用同一个应用程序池, ...
  • testcs_dn
  • testcs_dn
  • 2013年05月03日 11:47
  • 8296

[实时渲染] 2.2 应用程序阶段

因为应用程序阶段在CPU上执行,所以开发者对要做的事情可以有全面的把控,因此开发者可以选择实现方案以及后续修改以提高性能,当然这里的修改也可能会影响到后续阶段的性能,例如,应用程序阶段的算法及设置可以...
  • realxie
  • realxie
  • 2016年04月10日 22:12
  • 633

ABI (应用程序二进制接口)

应用程序二进制接口 描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口 。简介编辑 ABI涵盖了各种细节,如: 数据类型的大小、布局和对齐; 调用约定(控制着函数...
  • mouse1598189
  • mouse1598189
  • 2016年01月10日 12:01
  • 682

python开发windows应用程序

本人以前一直用的是C++,MFC,毕业到了公司以后,公司用python做流程,我顺便最近研究了一下用python开发windows应用程序的整个流程,大体如下: 一、开发前期准备           ...
  • binnygoal
  • binnygoal
  • 2014年02月23日 10:41
  • 4999

ZT:手动删除WAS上的一个应用

转载自http://blog.chinaunix.net/uid-20150979-id-1974961.html有时候Websphere Application Server上的应用会一直start...
  • gnahzil_Sun
  • gnahzil_Sun
  • 2016年11月25日 00:16
  • 510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:应用程序5步应用jpa--openjpa
举报原因:
原因补充:

(最多只允许输入30个字)