JDBC ORM Framework JORM

Apache
Java
跨平台
2011-09-21
jadmin

> 特点
  1.支持多数据源管理和配置
  2.自动封装Entity
  3.支持事务
  4.支持存储过程的方便调用
  5.支持lazy加载
  6.支持分页查询
  7.支持多种数据库H2,MySQL,Oracle,PostgrSQL,SQLServer 
  8.支持多种主流数据库连接池,如c3p0,proxool,dbcp,bonecp等
  9.自动管理数据库连接的生命周期

> 要求
  1.JDK 1.5 or later
  2.如需要lazy加载,需要引入cglib或javaassit,具体可配置

 > Maven dependency
   <dependency>
           <groupId>
net.sf.javaclub</groupId>
           <artifactId>
gerald-jorm</artifactId>
           <version>1.0.7.GA</version>
   </dependency>
          

> 示例
  1.添加
  Session session = Jorm.getSession();
  User u = new User("Gerald.Chen", "男", 21, "job");;
  session.save(u);

  2.删除
  session.clean(User.class);// 清空表
  session.delete(User.class, "id > 100");// 指定条件删除

  session.delete(user);

  3.查询
  User user = session.read(User.class, 1);// 根据主键加载

  // 加载第一个
  String sql = "SELECT * FROM t_user WHERE id > ?";
  User user = session.loadFirst(User.class, sql, 88);

  // 分页查询
  String sql = "SELECT * FROM t_user WHERE id > ?";
  SqlParams params = new SqlParams(sql, new Object[] { 6 });
  params.setObjectClass(User.class);
  params.setFirstResult(3);
  params.setMaxResults(10);
  List users = session.list(params);

  // 查询单个属性
  String sql = "SELECT name FROM t_user WHERE id = 28";
  String name = session.queryUniqueObject(sql);

  // 查询属性列表
  String sql = "SELECT name FROM t_user WHERE id > ?";
  List names = session.list(String.class, sql, 200);


  String sql = "SELECT age FROM t_user WHERE age > 18";
  List ages = session.list(int.class, sql);

  4.存储过程
  final String pro = "{? = call hello_proc(?)}";
  String r = session.call(new ProcedureCaller() {
            
    public CallableStatement prepare() throws SQLException {
          CallableStatement cs = getSession().getConnection().prepareCall(pro);
          cs.setString(2, "World");
          cs.registerOutParameter(1, Types.CHAR);
          return cs;
     }
            
     public String callback(CallableStatement cs) throws SQLException {
          cs.execute();
          return cs.getString(1);
     }
  });

  5.事务处理
  session.clean(User.class);
  session.beginTransaction();
  try {
    User u = null;
    for(int i = 0; i < 1000; i++) {
        String sex = (i % 2 == 0 ? "男" : "女");
        u = new User(fixedStr(6), sex, randNumber(100), randString(16));
        session.save(u);
        if(i == 886) {
            Integer.parseInt("kkk");
        }
    }
    session.commit();
  } catch (Exception e) {
      session.rollback();
  } finally {
      session.endTransaction();
  }

这是一个完全基于JDBC的轻量java orm framework, 目标定位于使用方便,简单,后续会增加许多新的特性

下载地址:http://sourceforge.net/projects/javaclub/files/jorm/

 

Simple CRUD
http://www.oschina.net/code/snippet_151926_6316

处理特殊字段
http://www.oschina.net/code/snippet_151926_6355

处理多个Oracle存储过程返回的游标
http://www.oschina.net/code/snippet_151926_6356

批量操作
http://www.oschina.net/code/snippet_151926_6528

主键生成策略
http://www.oschina.net/code/snippet_151926_6531

 

加载中

评论(1)

JDBC ORM Framework 1.0.8.RC1 发布

2011/10/14: Version 1.0.8.RC1 主要对配置文件进行了更新 ---------------------------------------------------------------------- * [46] add: 加入配置文件jorm.cfg.xml的dtd验证, 详见...

2011/10/14 22:24

JDBC ORM Framework 1.0.7.GA 发布

2011/10/10: Version 1.0.7.GA 主要更新如下 ---------------------------------------------------- * [44] add: 自动管理session的生命周期 * [43] add: one-to-many和many-to-one的级联加...

2011/10/09 23:56

JDBC ORM Framework 1.0.6 发布

JORM 1.0.6 发布,主要更新如下: 2011/09/23: Version 1.0.6 ---------------------------------------- * [35] fix: oracle下一个分页取limit数错误的bug. * [34] fix: oracle下检测是否支...

2011/09/23 10:19

没有更多内容

加载失败,请刷新页面

没有更多内容

1
回答
问几个jorm的问题

大致看了一下,感觉像一个精简的hibernate。非常感谢作者的开源! 有几个问题请教一下: 1. 支持联合主键吗? 2. 支持实体bean部分字段的up...

2011/10/13 21:04
2
回答
JORM会开源吗?下载包里没有源代码

想问准备作开源吗?

2011/10/13 08:51

没有更多内容

加载失败,请刷新页面

没有更多内容

千呼万唤始出来,OpenDaylight Lithium版本发布

本周一,期待已久的OpenDaylight Lithium版本发布了。想必大家都忍受了好久helium版本连编辑流表都成问题的硬伤,希望在新的版本中能有质的飞跃。在新版本中增加了对OpenStack的本地支持,加...

2015/06/30 13:34
36
0
忽略‘google-chrome.list.1’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效 问题的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gerald_Jones/article/details/80757479 在执行sudo apt-get update时出现题目中标题的错误,解决步骤如下: ...

2018/11/14 10:13
183
0
二维码生成(Javascript版)

二维码生成(Javascript版)

2016/03/18 15:03
55
1
计算机程序的构造和解释PDF原书第2版

网盘下载地址:计算机程序的构造和解释原书第2版PDF版下载 – 易分享电子书PDF资源网 作者: Harold Abelson / Gerald Jay Sussman / Julie Sussman 出版社: 机械工业出版社 副标题: 原书第2...

2018/06/29 21:08
33
0
Chapter8~条件和循环

8-1.条件语句。请看下边的代码: # statement A if x > 0: #statement B pass elif x < 0: #statement C else: #statement D pass #statement E (a)如果 x<0 ,上面哪个语句(A,B,C,D,E)将被...

2016/07/18 22:01
18
0
ERC721以太坊通证标准

## ERC-721 ERC-721标准与其他以太坊通证标准[ERC-20](https://my.oschina.net/u/3837977/blog/1806438)和[ERC-223](https://my.oschina.net/u/3837977/blog/1806434)都大不相同。 它描述了一...

2018/05/03 19:39
251
0
Python核心编程 第八章

条件与循环

2016/09/21 12:45
0
0
编程名言名句

下面是一些迄今为止最好的关于编程的名言名句。阅读它们时相信你会有几分愉悦,你可以在一些会谈场合引用它们,一定能为你的团队吸引到不少的好程序员。 UNIX很简单。但需要有一定天赋的人才...

2015/06/04 17:27
15
0
Programming is not not Programming

I used to call myself a "Software Craftsman" for nostalgic reasons, it made me feel good and connected to history - like to Conan's dad in the start of the movie, forging a swor...

2016/12/17 18:16
4
0
机器学习预测世界杯:巴西夺冠

3天后,2018年俄罗斯世界杯开打,首场比赛是东道主俄罗斯对阵沙特阿拉伯,将于6月14日拉开序幕。 每届世界杯最受关注的当属决赛,上届2014年巴西世界杯,东道主巴西队意外爆冷,只获得第四名...

2018/06/12 14:54
8
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部