中国领先的IT技术网站
|
|

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

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

作者:红薯来源:开源中国社区|2012-02-01 09:16

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


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持久层框架
【责任编辑:小林 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

视频课程+更多

Windows Server 2008 活动目录视频课程

Windows Server 2008 活动目录视频课程

讲师:韩立刚305349人学习过

C语言程序设计

C语言程序设计

讲师:谭科51930人学习过

VMware服务器虚拟化视频课程之入门篇

VMware服务器虚拟化视频课程之入门篇

讲师:王春海83033人学习过

读 书 +更多

网络工程师考试考前冲刺预测卷及考点解析

本书依据最新版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言