Ujorm 1.22发布 Java的轻量级ORM框架

开发 后端
Ujorm是一个新的开源Java版ORM框架,Ujorm的作者目标是开发一个足够敏捷的ORM框架作为Java应用的持久层,以适合快速迭代开发的敏捷团队。

Ujorm 1.22 发布,改进内容:

  • The UjoProperty interface extends the CriterionMaker now for a simpler Criterion building.
  • A new annotation parameter called converter can be assigned for a special reading data from/to ResultSet.
  • A new method UjoComparator.sort() is implemented, as well as a better type safe using Java generics.
  • Solid database names of foreign columns name constraints are implemented.
  • The right parameter of Criterion can be an indirect property.
  • The default implementation toString() of the AbstractUjo object is improved

Ujorm是一个新的开源Java版ORM框架,Ujorm的作 者目标是开发一个足够敏捷的ORM框架作为Java应用的持久层,以适合快速迭代开发的敏捷团队。Ujorm的第一个优势是性能上的优势,从一个简单的 SELECT来时,Ujorm的性能要远远高于同类框架。当然Ujorm还包括有:类型安全的查询参数,更小的性能开销,和最简化的实体解决方案。

[代码] 保存数据

  1. OrmHandler.getInstance().loadDatabase(Database.class);  
  2.  
  3. Order order = new Order();  
  4. order.setDate(new Date());  
  5. order.setDescr("John's order");  
  6.  
  7. Item item1 = new Item();  
  8. item1.setOrder(order);  
  9. item1.setDescr("Yellow table");  
  10.  
  11. Item item2 = new Item();  
  12. item2.setOrder(order);  
  13. item2.setDescr("Green window");  
  14.  
  15. Session session = OrmHandler.getInstance()  
  16.                   .createSession();  
  17. session.save(order);  
  18. session.save(item1);  
  19. session.save(item2);  
  20.  
  21. session.commit();  
  22. session.close(); 

[代码] 查询数据

  1. Criterion<Item> cn1, cn2, criterion;  
  2.  
  3. cn1 = Criterion.where( Item.ID, Operator.GE, 1L );  
  4. cn2 = Criterion.where( Item.ORDER.add(Order.DESCR)  
  5.                      , "John's order" ); // Equals to  
  6. criterion = cn1.and(cn2);  
  7.  
  8. Session session = OrmHandler.getInstance()  
  9.                   .createSession();  
  10. Query<Item> items = session.createQuery(criterion)  
  11.          .orderBy ( Item.ORDER.add(Order.CREATED)  
  12.                   , Item.ID.descending() );  
  13. System.out.println( "Row count: " + items.getCount());  
  14.  
  15. for (Item item : items) {  
  16.     String descr = item.getDescr();  
  17.     Date created = item.getOrder().getDate();  
  18.     System.out.println( created + " : " + descr );  
  19. }  
  20. session.close(); 

[代码] 排序

  1. OrmHandler hr = OrmHandler.getInstance();  
  2.  
  3. MetaColumn col = (MetaColumn)  
  4.            hr.findColumnModel(Order.DESCR);  
  5.  
  6. StringBuilder msg = new StringBuilder()  
  7.     .append("Length : " + col.getMaxLength() + '\n')  
  8.     .append("NotNull: " + col.isMandatory()  + '\n')  
  9.     .append("PrimKey: " + col.isPrimaryKey() + '\n')  
  10.     .append("DB name: " + col.getFullName()  + '\n')  
  11.     ;  
  12. System.out.println(msg); 

原文链接:http://www.oschina.net/news/25177/ujorm-1-2-2-java-orm-framework

【编辑推荐】

  1. JActor 1.1.0发布 Actor模式的Java实现
  2. 基于Java的XWiki 3.4 发布第一个里程碑版本
  3. OpenXava 4.3.1发布 Java快速Web开发框架
  4. Dzo 3.0发布 基于Java的数据库结构维护工具
  5. Hibernate Core 4.0.1发布 Java持久层框架
责任编辑:林师授 来源: 开源中国社区
相关推荐

2011-11-28 09:16:24

Javajooq框架

2012-02-13 09:52:56

Java

2012-04-10 09:29:29

jOOQJava

2012-02-01 16:08:05

JavajOOQ

2012-02-27 09:17:24

JavajOOQ

2012-01-09 10:08:10

JavajOOQ

2012-04-13 09:11:13

JavajOOQ

2012-03-19 10:10:55

jOOQJava

2011-08-31 13:31:00

PythonSQLObject数据库

2011-03-22 17:12:45

2009-07-29 08:58:20

NHibernate ORM框架

2012-03-09 09:26:39

JavaHibernate

2015-11-19 13:44:43

Bodhi Linux

2012-02-01 15:53:03

JavaEhcache

2012-04-12 11:03:24

RRiBbitJava

2012-03-06 09:20:02

SpockJava

2012-02-16 09:30:25

DynamicRepoJava

2012-01-05 10:19:35

JavaAjaxZK

2012-05-10 10:18:14

JavaDisruptor

2011-03-02 10:03:44

SaturnJSJS
点赞
收藏

51CTO技术栈公众号