一个很好的框架 OJB

easyinfonet 2003-07-07 01:41:00
OJB 是ObJectRelationalBridge 的简称。
一个很好的框架,对数据的操作可以不用写sql语句 ,可以使工作集中在业务逻辑上。
OJB提过多种api让用户选择
大家可以参考
PersistenceBroker API
OJB Queries
ODMG API
JDO API
Advanced O/R
OJB has been designed for a large range of applications, from embedded systems to rich client application to multi-tier J2EE based architectures.

OJB integrates smoothly into J2EE Application servers. It supports JNDI lookup of datasources. It ships with full JTA and JCA Integration. OJB can be used within JSPs, Servlets and SessionBeans. OJB provides special support for Bean Managed EntityBeans (BMP).

1. 安装jdk,并进行设置 set JAVA_HOME=C:\jdk1.3
2. 从http://db.apache.org/ojb/下载包并且揭开(这是一个包的db-ojb-XXX-src.tgz)将这个包揭开放到 d:/db-ojb-XXX/
3. 找到下面的这些包并且放到 d:\db-ojb-XXX\lib目录下面


Jar archive
how to get it

j2ee.jar
Please get it from http://java.sun.com/j2ee/

jdo.jar

(for the OjbStore JDORI Plugin only)
Please get it from http://java.sun.com/products/jdo

jdori.jar

(for the OjbStore JDORI Plugin only)
Please get it from http://java.sun.com/products/jdo

jndi.jar (for JDK1.2 only)
Please get it from http://java.sun.com/

proxy.jar (for JDK1.2 only)
Please get it from http://sf.net/projects/objectbridge/

4. 运行 d:\db-ojb-XXX\bin\build junit


5. 下面运行它自己带的例子
bin\build.bat prepare-tutorials
bin\tutorial1.bat
运行结果

6. 在讲解代码前先对配置文件进行一下说明
respository_user.xml 文件是数据库和你的表的映射
<class-descriptor class="org.apache.ojb.tutorial1.Product" table="PRODUCT">
<field-descriptor name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true"/>
<field-descriptor name="name" column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="price" column="PRICE" jdbc-type="DOUBLE"/>
<field-descriptor name="stock" column="STOCK" jdbc-type="INTEGER"/>
</class-descriptor>
respository_database.xml 是配置你的数据库 例子用的是免费的hsql

7.对例子代码进行一下说明
org.apache.ojb.tutorial1.Product.java 配置文件中映射的类,内容很简单全部是set get方法]

7.1增加操作
PersistenceBroker broker = … /得到一个borker
Product newProduct = new Product(); //首先声明一个product
newProduct.setName(..);
newProduct. SetPrice(…)
newProduct .setStock(…) //增加产品的内容

try
{ broker.beginTransaction(); //设置事务开始
broker.store(newProduct); //开始增加
broker.commitTransaction(); //commit事务
}
catch (PersistenceBrokerException ex)
{ broker.abortTransaction(); //回滚事务
System.out.println(ex.getMessage());
ex.printStackTrace();
}



7.2 修改操作
Product example = new Product(); //声明一个Product
example.setId(id); //设置修改的product
try
{ broker.beginTransaction(); //设置事务开始
example.setName(..); //修改
example. SetPrice(…)
example.setStock(…)
broker.commitTransaction(); //commit事务
}
catch (PersistenceBrokerException ex)
{ broker.abortTransaction(); //回滚事务
System.out.println(ex.getMessage());
ex.printStackTrace();
}


7.3删除
Product example = new Product(); //声明一个Product
example.setId(id); //设置删除的product
Query query = new QueryByIdentity(example); //得到一个Query
try
{ broker.beginTransaction();
Product toBeDeleted = (Product) broker.getObjectByQuery(query);
broker.delete(toBeDeleted); //删除
broker.commitTransaction();
} catch (Throwable t)
{ broker.abortTransaction();
t.printStackTrace();
}

7.4 列出Product
Query query = new QueryByCriteria(Product.class, null); //得到一个Query
try{ Collection allProducts = broker.getCollectionByQuery(query);
java.util.Iterator iter = allProducts.iterator();
while (iter.hasNext())
{
System.out.println(iter.next());
}
}
catch (Throwable t)
{
t.printStackTrace();
}
对查询的一些详细的做法可以参考 http://db.apache.org/ojb/query.html



8 修改使用的数据库
如果你的系统中需要加入OJB
如果要修改数据库请修改respository_database.xml
下面是修改是使用Oracle 数据库
<jdbc-connection-descriptor
jcd-alias="default"
default-connection="true"
platform="Oracle"
jdbc-level="2.0"
driver="oracle.jdbc.driver.OracleDriver"
protocol="jdbc"
subprotocol="oracle:thin:@192.168.0.152:1521"
dbalias="orcl"
username="cimc"
password="123456"
eager-release="false"
batch-mode="false"
useAutoCommit="1"
ignoreAutoCommitExceptions="false"
>
这里做一个简单的介绍,详细的请大家自己去看看

...全文
145 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AllError 2003-07-07
  • 打赏
  • 举报
回复
谢谢楼主推荐
AllError 2003-07-07
  • 打赏
  • 举报
回复
我还是用hibernate2.0吧
AllError 2003-07-07
  • 打赏
  • 举报
回复
才1.0.稳定否??
持久化问题(永久存储信息的访问)是面向对象开发和企业应用开发需要面临的问题,而 关系型数据库是目前保存数据的有效手段,因此如何在对象层(Object)和关系数据库 (Relational)之间建立一种好的机制,可以更有效的改进开发的效率和质量。目前在 Java环境下存在很多O/R框架,如EJB的EntityBean模式、JDO、OJB等,但Windows和 .Net环境下有效的O/R映射框架却很少(微软正在开发类似的技术Microsoft ObjectSpace,还有NetPersistent和JPersistent等)。 Pdo(Persistent Data Object)是适用于Microsoft .Net环境下的O/R映射方式的持久性 处理框架。Pdo能够使处理持久化数据(需要保持在关系型数据库中的数据)采用";;;;;;;持久化 对象";;;;;;;的方式,对于面向对象设计来说是处理对象持久化问题的自然方式。在传统的开 发方式中,通常需要书写代码使用像ADO或Microsoft .Net Data Provider等数据访问 引擎来读取、更新和增加数据,需要维护关于底层数据库的信息。然而Pdo对数据以对 象和属性的方式进行处理,而不再需要了解如何处理表的纪录,以及数据的来源等底层 的数据库信息。 更多介绍,http://www.marshine.com。(现已开放源码) 发布声明 a.. 当前版本仅供技术预览,用于交流,存在很多设计不当的地方,建议不要用于实 际项目。 b.. 欢迎大家提供意见。 c.. 个人开发作品。
内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架一个领域:核心层、中间层和Web 层。第一部分展示了Spring框架的两个核心概念:反向控制(Inverstion of Control,IoC)和面向切面编程(Aspect-Oriented Programming,AOP),以便读者理解Spring的基础原理,这些基础原理在本书各个章节都会用到。第二部分在第1章介绍的IoC和AOP基础之上,展示了如何将这两个概念应用到应用系统的中间层。第三部分走出中间层迈向显示层,在很多J2EE系统中显示层被称为Web层。附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必从头开始就可以深入到各个主题。   本书适合所有Java开发人员,特别是对企业级 Java开发人员更有帮助。本书将循序渐进地指导读者浏览贯穿本书的复杂示例。Spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏本书中的示例代码。本书最后4章描述了Spring是如何为Web层开发提供支持的,如果你是一位Web开发人员,你会发现本书的最后一部分特别有用。 编辑推荐 : Spring是掠过Java大地的一阵清风。Spring是以反向控制设计原理为基础,无需EJB而功能依然强大的轻量级J2EE开发框架。Spring大大简化了使用接口开发的复杂性,并且加快和简化了应用系统的开发。使用简单JavaBean就可以得到EJB的强大功能。 本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE 应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将你的应用系统与其他流行Web框架集成。你将学习如何使用Spring管理大量的基础设施代码,这样你就可以将注意力集中在真正的问题上——重要的业务需要。 本书内容: ·使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层; ·声明式事务与事务管理; ·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity; ·访问J2EE服务,如JMS和EJB; ·使用AOP解决交叉问题; ·企业组应用系统最佳实践。 “……一种解释Spring中各个主题的很好途径……我喜欢这本书” ——Christian Parker,Adigio公司总裁 “……没有其他书籍可以与这本书的实用性相提并论。” ——Olivier Jolly,J2EE构架师,Interface SI “我很喜欢这种展示Spring的方式。” ——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者
内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架一个领域:核心层、中间层和Web 层。第一部分展示了Spring框架的两个核心概念:反向控制(Inverstion of Control,IoC)和面向切面编程(Aspect-Oriented Programming,AOP),以便读者理解Spring的基础原理,这些基础原理在本书各个章节都会用到。第二部分在第1章介绍的IoC和AOP基础之上,展示了如何将这两个概念应用到应用系统的中间层。第三部分走出中间层迈向显示层,在很多J2EE系统中显示层被称为Web层。附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必从头开始就可以深入到各个主题。   本书适合所有Java开发人员,特别是对企业级 Java开发人员更有帮助。本书将循序渐进地指导读者浏览贯穿本书的复杂示例。Spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏本书中的示例代码。本书最后4章描述了Spring是如何为Web层开发提供支持的,如果你是一位Web开发人员,你会发现本书的最后一部分特别有用。 编辑推荐 : Spring是掠过Java大地的一阵清风。Spring是以反向控制设计原理为基础,无需EJB而功能依然强大的轻量级J2EE开发框架。Spring大大简化了使用接口开发的复杂性,并且加快和简化了应用系统的开发。使用简单JavaBean就可以得到EJB的强大功能。 本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE 应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将你的应用系统与其他流行Web框架集成。你将学习如何使用Spring管理大量的基础设施代码,这样你就可以将注意力集中在真正的问题上——重要的业务需要。 本书内容: ·使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层; ·声明式事务与事务管理; ·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity; ·访问J2EE服务,如JMS和EJB; ·使用AOP解决交叉问题; ·企业组应用系统最佳实践。 “……一种解释Spring中各个主题的很好途径……我喜欢这本书” ——Christian Parker,Adigio公司总裁 “……没有其他书籍可以与这本书的实用性相提并论。” ——Olivier Jolly,J2EE构架师,Interface SI “我很喜欢这种展示Spring的方式。” ——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧