您的位置:首页 > 其它

sdo的三种实现方法

2007-09-25 09:34 274 查看
1)就是 tuscany das的实现了,大家有兴趣可以自己去看看。
2)就是 EOS das的实现方式了。
其实就是对hibernate的一个扩充,实现了 sdo-r。
一个sdo是可以对应多个不同的 hbm mapping的,这个需要用studio的形式让用户做选择和配置。
3) Eclipse Teneo方式
teneo以前是elver 持久化组件,后来并入了Eclipse EMF Tools项目。
它的本质就是在 emf 对象和 hibernate/sdo间加了一个桥梁,这样我们只需要关注EMF对象的关系,而不用过多的考虑每一个eObject该如何与数据库表对应。

一般是用hibernate了,在这样的情况下,Teneo会根据ePackage所描述的Model中的eObject对象之间的关系,自动的产生hiernate.hbm.xml映射文件。
但是会有 数据库表结构需要 手工定的情况,这样的情况下,还是需要和EOS一样,用图形方式来让用户
选择。
可以参考 http://www.elver.org/hibernate/tutorialone/tutorial1_intro.html, 如果不想深入,
可以只看看下面的代码:
final HbDataStore dataStore = HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
dataStore.setEPackages(new EPackage[] { LibraryPackage.eINSTANCE });

final SessionFactory sessionFactory = dataStore.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();

LibraryAdapterFactory adapterFactory = new LibraryAdapterFactory();

Library library = LibraryFactory.eINSTANCE.createLibrary();
library.eAdapters().add( adapterFactory.createAdapter(library) );
library.setName("My Library");

session.save(library);

Writer writer = LibraryFactory.eINSTANCE.createWriter();
writer.setName("Writer One");

Book book = LibraryFactory.eINSTANCE.createBook();
book.setPages(305);
book.setTitle("The Hobbit");
book.setCategory(BookCategory.SCIENCE_FICTION_LITERAL);
book.getWriter().add(writer);

library.getWriters().add(writer);
library.getBooks().add(book);

session.getTransaction().commit();
session.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: