JDO示例- JPOX
(ALin 2006-12-27 00:28)
第一部分:相关概念
[JDO的实现版本之一:JPOX]
JPOX是JDO的一个具体实现版本。其官方主页为: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,作用和Hibernate的hibernate.cfg.xml文件类似。同时,还应该为JPOX提供一个Log4j的配置文件,用来输出日志。
第二部分:示例
这个例子只简单地示范可持久化类的创建、删除、更新和查询,不涉及关系部分。当然,为了直观起见,照样不使用IDE,而使用简单的文本编辑器和相关的命令行工具。
一、建立本项目的目录结构,本项目中一共只有一个可持久类,alin.demo.Author。项目的根文件夹下面一共3个文件夹:bin, src, lib。具体各个目录放置什么地球人都知道吧!?
lib目录下的JAR文件就是JDO2.0的标准API和JPOX的实现,由于使用到Log4j,因此还要把Log4j的JAR文件也放到此目录下。最终的目录结构如下:
<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) 元数据文件
代码2:Author.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,代表的是JDO的PersistenceManagerFactory的具体实现,这个值依赖于具体的实现。前面的一组属性是JDO的标准属性,任何实现都必须支持的,后面的是JPOX的扩展属性。
代码3:jpox.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配置文件
代码4:log4j.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中的应用》 Java Data Objects(JDO)是Java平台上的一个标准接口,它提供了一种透明的持久化机制,允许开发者以对象为导向的方式操作数据库。JDO2-API-2.3-EC是JDO规范的2.3...
jdo2-api jdo2-api jdo2-api jdo2-api
Java Data Objects(JDO)是Java平台上的一个标准接口,用于访问关系数据库。"jdo2-api-2.0"是Sun Microsystems发布的JDO 2.0版本的API,它提供了一种简单、灵活和高性能的方式来操作持久化数据。这个API使得开发...
赠送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文档:...
赠送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....
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 jdo2-api.jar
赠送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-...
赠送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....
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...
datanucleus-api-jdo-3.2.6.jar )
java运行依赖jar包
标题 "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:构建高效JDO应用》 在Java开发领域,XDoclet是一款备受推崇的自动化工具,它通过读取源代码注释来生成各种元数据,如JavaDoc、Hibernate映射文件、EJB组件描述等。而xdoclet-...
#### 一个简单的使用示例 ##### 准备工作 在进行开发前,请先做好以下准备工作: 1. **安装 Eclipse 并配置 Java 运行环境**:确保已安装 Eclipse 3.0 M6 或更高版本,且 Java 2 SDK 1.4 或更高版本已安装。 2. *...
Java数据对象(JDO)是Java编程环境中用来间接访问数据库的一种API,它的出现是为了补充Java数据库连接(JDBC)的功能。JDBC虽然强大,但直接使用SQL语句进行数据库操作可能会增加开发复杂性,而JDO则允许程序员通过...
可以更新如下: 通过在api子模块中调用mvn clean install -Papache-release在db-jdo存储库中创建javadoc jar(例如jdo-api-3.2-javadoc.jar)。 在docs下创建一个新文件夹,例如docs / api32。 将javadocs jar info...
实测可用
实测可用
实测可用