`
e_ville
  • 浏览: 27992 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论
阅读更多
JDO示例 JPOX

(ALin 2006-12-27 00:28)

 
第一部分:相关概念
[JDO的实现版本之一:JPOX]
JPOXJDO的一个具体实现版本。其官方主页为:http://www.jpox.org/index.jsp
JDO现在是2.0版,以前的1.0版的Sun官方有具体的实现,不过后来移交给Apache了,所以Apache网站上也有JDO的实现。这种标准的API加上具体的实现的方式在Java相关技术中很常见。下载JPOX1.1.4版。
 
[可持久化类]
JDO规范定义了作为Java接口的可持久约定,称之为PersistenceCapable,同时还定义了类实现必须遵守的编程风格。遵守该约定的类被定义为是“可持久的”。JOD作为一种ORM解决方案,使用JDO可以有3种方法生成可持久类:

<!---->1.     <!---->源代码生成,即是实现相关的接口,自己编写相关的方法,在点类似于BMP EJB

<!---->2.     <!---->源代码处理。

<!---->3.     <!---->字节码增强(使用字节码增强工具:byte-code enhancer)

JDO要求可持久类必须有一个不带参数的构造函数,可以是public, protected, private,只要保证定义的类及其潜在的子类能够访问即可。
 
[JDO元数据]
JDO无数据即是描述可持久化类与数据库相互关系的文件,是以jdo为扩展名XML文件。假如有一个类为:
alin.scut.jdo.Author,则描述该类的元数据可以在以下文件中:

<!---->Ø         <!---->package.jdo

<!---->Ø         <!---->alin/package.jdo

<!---->Ø         <!---->alin/scut/package.jdo

<!---->Ø         <!---->alin/scut/jdo/package.jdo

<!---->Ø         <!---->alin/scut/jdo/Author.jdo

按以上顺序搜索元数据,并使用第一个发现的定义。
 
[JDO配置文件]
和其他的ORM框架一样,JDO也有一个配置文件,具体的实现可能有不同的配置文件。JPOX的配置文件为:jpox.properties,作用和Hibernatehibernate.cfg.xml文件类似。同时,还应该为JPOX提供一个Log4j的配置文件,用来输出日志。
 
 
第二部分:示例
这个例子只简单地示范可持久化类的创建、删除、更新和查询,不涉及关系部分。当然,为了直观起见,照样不使用IDE,而使用简单的文本编辑器和相关的命令行工具。
 
一、建立本项目的目录结构,本项目中一共只有一个可持久类,alin.demo.Author。项目的根文件夹下面一共3个文件夹:bin, src, lib。具体各个目录放置什么地球人都知道吧!?
lib目录下的JAR文件就是JDO2.0的标准APIJPOX的实现,由于使用到Log4j,因此还要把Log4jJAR文件也放到此目录下。最终的目录结构如下:
<Project>
lib
jdo.jar(或者叫jdo2-api.jar)
JDO2.0 AIPI
 
jpox.jar
JPOX1.1.4实现
jpox-enhancer.jar
JPOX的字节码增强器
log4j.jar
Log4j
bcel.jar
(jboss-4.0.2\server\default\lib目录下面有)
Byte Code Engineering Library
 (BCEL),这是Apache Software
 Foundation Jakarta 项目的一部分。
src
alin/demo/Author.java
 
 
alin/main/…….java
这个包下面的源文件是示例应用程序
 
alin/demo/Author.jdo
 
jpox.properties
注意数据库URL后面部分的作用:
SelectMethod=cursor(后面会说明)
log4j.properties
 
bin
alin/demo/Author.class
 
 
alin/main/…….class
 
alin/demo/Author.jdo
这些文件都是直接从src目录下面复制过来的。
jpox.properties
log4j.properties
 
二、各文件具体内容:
(1) 可持久类Author.java

代码1 Author.java

// Author.java -- Demostrate JDO.
// 2006-11-25 20:55
 
package alin.demo;
 
//import javax.jdo.spi.PersistenceCapable;
//import javax.jdo.JDOHelper;
public class Author {

   private int books;

   private String name;

  

   public Author(String name, int books) {

       this.name = name;

       this.books = books;

   }
  

   protected Author() {

   }
 

   public String getName() {

       return name;

   }
 

   public void setName(String name) {

       this.name = name;

   }
 

   public int getBooks() {

       return books;

   }
 

   public void setBooks(int books) {

       this.books = books;

   }
}
 
(2) 元数据文件
代码2Author.jdo

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE jdo PUBLIC

    "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"

    "http://java.sun.com/dtd/jdo_2_0.dtd">

<jdo>

   <package name="alin.demo">

       <class name="Author" identity-type="datastore">

           <field name="books" persistence-modifier="persistent">

            </field>

           <field name="name" persistence-modifier="persistent">

                <column length="50" jdbc-type="VARCHAR"/>

            </field>

       </class>
   </package>
</jdo>
 
(3)JPOX配置文件,注意这个属性:javax.jdo.PersistenceManagerFactoryClass,代表的是JDOPersistenceManagerFactory的具体实现,这个值依赖于具体的实现。前面的一组属性是JDO的标准属性,任何实现都必须支持的,后面的是JPOX的扩展属性。
代码3jpox.properties
# jpox.properties -- jpox configuration.
# 2006-11-28 19:24
 
# -- Standard JDO properties. --
javax.jdo.PersistenceManagerFactoryClass=org.jpox.PersistenceManagerFactoryImpl
javax.jdo.option.ConnectionDriverName=com.microsoft.jdbc.sqlserver.SQLServerDriver
javax.jdo.option.ConnectionURL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JDO;SelectMethod=cursor
javax.jdo.option.ConnectionUserName=sa
javax.jdo.option.ConnectionPassword=sqlserversaps
 
# -- JPOX properties. --
org.jpox.autoCreateSchema=true
org.jpox.validateTables=false
org.jpox.validateConstraints=false
 
(4) log4j配置文件
代码4log4j.properties
# LOG4J Configuration
# ===================
 
# Basic logging goes to "jpox.log"
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.File=jpox.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n

#log4j.appender.A1.Threshold=INFO
分享到:
评论

相关推荐

    jdo2-api-2.3-ec hive hdfs 所需jar

    《深入理解JDO2-API-2.3-EC在Hive与HDFS中的应用》 Java Data Objects(JDO)是Java平台上的一个标准接口,它提供了一种透明的持久化机制,允许开发者以对象为导向的方式操作数据库。JDO2-API-2.3-EC是JDO规范的2.3...

    jdo2-api jdo2-api

    jdo2-api jdo2-api jdo2-api jdo2-api

    jdo2-api-2.0

    Java Data Objects(JDO)是Java平台上的一个标准接口,用于访问关系数据库。"jdo2-api-2.0"是Sun Microsystems发布的JDO 2.0版本的API,它提供了一种简单、灵活和高性能的方式来操作持久化数据。这个API使得开发...

    javax.jdo-3.2.0-m3-API文档-中英对照版.zip

    赠送jar包:javax.jdo-3.2.0-m3.jar; 赠送原API文档:javax.jdo-3.2.0-m3-javadoc.jar; 赠送源代码:javax.jdo-3.2.0-m3-sources.jar; 赠送Maven依赖信息文件:javax.jdo-3.2.0-m3.pom; 包含翻译后的API文档:...

    datanucleus-api-jdo-3.2.6-API文档-中文版.zip

    赠送jar包:datanucleus-api-jdo-3.2.6.jar; 赠送原API文档:datanucleus-api-jdo-3.2.6-javadoc.jar; 赠送源代码:datanucleus-api-jdo-3.2.6-sources.jar; 赠送Maven依赖信息文件:datanucleus-api-jdo-3.2.6....

    jdo2-api.jar

    还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 jdo2-api.jar

    jdo-api-3.0.1-API文档-中英对照版.zip

    赠送jar包:jdo-api-3.0.1.jar; 赠送原API文档:jdo-api-3.0.1-javadoc.jar; 赠送源代码:jdo-api-3.0.1-sources.jar; 赠送Maven依赖信息文件:jdo-api-3.0.1.pom; 包含翻译后的API文档:jdo-api-3.0.1-javadoc-...

    datanucleus-api-jdo-4.2.1-API文档-中英对照版.zip

    赠送jar包:datanucleus-api-jdo-4.2.1.jar; 赠送原API文档:datanucleus-api-jdo-4.2.1-javadoc.jar; 赠送源代码:datanucleus-api-jdo-4.2.1-sources.jar; 赠送Maven依赖信息文件:datanucleus-api-jdo-4.2.1....

    javax.jdo-3.2.0-m3.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...

    datanucleus-api-jdo-3.2.6.jar )

    datanucleus-api-jdo-3.2.6.jar )

    jdo2-api-2.3-ea.jar

    java运行依赖jar包

    datanucleus-jdo-jca-5.1.0-release.zip

    标题 "datanucleus-jdo-jca-5.1.0-release.zip" 指的是 DataNucleus JDO (Java Data Objects) 和 JCA (Java Connector Architecture) 的一个特定版本,这里是 5.1.0 发行版。DataNucleus 是一个开源的 ORM (对象关系...

    xdoclet-plugin-jdo-1.0.3.zip

    《深入解析xdoclet-plugin-jdo-1.0.3:构建高效JDO应用》 在Java开发领域,XDoclet是一款备受推崇的自动化工具,它通过读取源代码注释来生成各种元数据,如JavaDoc、Hibernate映射文件、EJB组件描述等。而xdoclet-...

    jdo-tutorial.pdf

    #### 一个简单的使用示例 ##### 准备工作 在进行开发前,请先做好以下准备工作: 1. **安装 Eclipse 并配置 Java 运行环境**:确保已安装 Eclipse 3.0 M6 或更高版本,且 Java 2 SDK 1.4 或更高版本已安装。 2. *...

    jdo-java数据对象

    Java数据对象(JDO)是Java编程环境中用来间接访问数据库的一种API,它的出现是为了补充Java数据库连接(JDBC)的功能。JDBC虽然强大,但直接使用SQL语句进行数据库操作可能会增加开发复杂性,而JDO则允许程序员通过...

    db-jdo-site:Apache JDO项目

    可以更新如下: 通过在api子模块中调用mvn clean install -Papache-release在db-jdo存储库中创建javadoc jar(例如jdo-api-3.2-javadoc.jar)。 在docs下创建一个新文件夹,例如docs / api32。 将javadocs jar info...

    gaedo-google-jdo-0.4.10-exceptions.jar

    实测可用

    gaedo-google-jdo-0.4.20-exceptions.jar

    实测可用

    gaedo-google-jdo-0.4.11-exceptions.jar

    实测可用

Global site tag (gtag.js) - Google Analytics