有人用过Castor吗?

hzy_23 2007-01-30 12:10:01
它可以从Java对象生成xml文档,想知道它可以反过来映射吗?
...全文
267 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
waitgod 2008-04-30
  • 打赏
  • 举报
回复
受教~~~~~~~
helloqiner 2008-04-30
  • 打赏
  • 举报
回复
当然可以,
1、你是想从xml生成Castor的类吗?
如果是可以装一个Castor的Eclipse插件,然后选中xsd文件,点鼠标右键,选Castor source Generator菜单即可生成对应的Castor类。
2、你是想解析现有的xml,产生Castor类的实例吗?
如果是则直接用 Castor类.unmarshal(new FileReader("c:/test.xml")); 即可。
浴火_凤凰 2008-04-27
  • 打赏
  • 举报
回复
Castor JDO是一个纯Java的对象关系(O/R)映射和数据绑定框架。Castor使用用户定义的映射信息在关系数据库和Java对象之间建立起映射转换关系。从另一个层面说,Castor JDO为Java对象提供了一个数据持久层。
Castor JDO对于Java对象的操作被自动转换为对数据库的查询,更新,插入和删除操作。在事务边界中,对于Java对象的修改,在执行提交(commit)操作时自动提交给数据源。因此, Java开发人员在构建了数据库表和映射信息后,视角的重心从数据库操作层面转移到Java对象的操作上。Castor JDO将数据的序列化和业务逻辑分离为更好的进行面向对象的设计提供了支持,这在大型项目中特别重要。
Castor JDO采用类似于Castor XML样式的Mapping映射文件。下文我们将详述Castor JDO的概念与应用。
2. 功能特性
Ø Castor JDO是一个事务框架。当数据对象被Castor加载后,Castor会对该数据对象进行锁定并对其他事务隔离。Castor通过xa.Synchronzation支持完整的两阶段事务提交。Castor提供数据对象的“shared”、“exclusive”、“database locked”和“read-only”等多种数据读写策略。
n 共享读(shared),Castor默认的数据锁定策略,在多个事务查询同一数据对象,更新操作作用于各自的对象拷贝时适用。
n 排斥读(exclusive),Castor提供一个内存锁,多个事务在同一数据对象上执行更新操作时,以竞争的方式获取内存锁来完成对象的更新操作。
n 数据库锁(dabase locked),此策略应用于多个应用程序同时访问数据库数据的场景,如果其他应用程序使用Castor以外的其他方式访问数据库,则考虑使用该策略。
n 只读(read-only),不对数据做任何锁定。使用该策略的所有数据对象都不加锁,这些对象也不参与事务提交和回滚。
Ø 支持“长时间事务(long transactions)”,通过内置的数据“脏检查(dirty-checking)”防止用户在初始事务中对数据变更后被重复修改,从而允许用户在一个事务内读取对象,修改更新,然后在第二个事务中提交。通过自动的数据“脏检查(dirty-checking)”和死锁侦测,Castor可以确保数据的一致性并减少不必要的数据库更新操作。
Ø 支持OMG(Object Management Group)3.0对象查询语言规范OQL的一个子集用来与数据库进行交互。OQL与SQL类似,但其操作作用于Java对象而不是数据库表。
Ø 实现了一个数据缓存池来减少数据库的频繁访问,同时提供了几种可选的LRU类型的缓存策略。
Ø 支持一对一,一对多,多对多等多种数据库关系,支持对象和数据库记录的继承。Castor区分对象数据生命周期中的关联(如联合)和依赖(如聚合)关系,在各自对象的生命周期中,自动创建和删除依赖的对象数据。
Ø 支持数据库表多主键,并提供多种主键生成器。
Ø 自动处理包含Java集合类型的对象的存储,包括Vector,Hashtable,Collection,Set和Map。通过“延迟加载”减少不必要的数据库访问。延迟加载可以在每一个集合类型的字段上设定。
Ø 支持Java对象类型与数据库类型间的自动转换。
Ø Castor JDO在同一个应用中使用多个类加载器,使得其可以在EJB容器或Servlet容器中使用。
Ø Castor XML框架和Castor JDO可以无缝集成使用,同时处理O/R映射和Java对象-XML 数据绑定。
Ø Castor JDO支持以下数据库系统:
n DB2
n Derby
n Generic DBMS
n Hypersonic SQL
n Informix
n InstantDB
n Interbase
n MySQL
n Oracle (8.1.x,9.x,10g)
n PostgreSQL
n Progress
n SAP DB / MaxDB
n SQLServer
n Sybase
用户可以针对特定数据库提供自己的JDBC驱动接口实现插入到Castor中,前提是该数据库支持JDBC2.0,多结果集(ResultSet)和事务。

23,404

社区成员

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

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