SDO的三种实现方法

日期: 2008-01-23 来源:TechTarget中国

  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();

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐