轻量级Java ORM框架JDBC ORM Framework (Jorm)

edotxp 2011-09-29 09:41:20
> 特点
1.支持多数据源管理和配置
2.自动封装Entity
3.支持事务
4.支持存储过程的方便调用
5.支持lazy加载
6.支持分页查询
7.支持多种数据库H2,MySQL,Oracle,PostgrSQL,SQLServer

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

> 示例
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);// 根据主键加载

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

// 分页查询
SqlParams params = new SqlParams("SELECT * FROM t_user WHERE id > ?", 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);

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

4.存储过程
final String pro = "{? = call hello_proc(?)}";
String r = session.call(new ProcedureCaller() {

public CallableStatement prepare() throws SQLException {
CallableStatement cs = this.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);
User u;
session.beginTransaction();
try {
for(int i = 0; i < 1000; i++) {
String sex = (i % 2 == 0 ? "男" : "女");
u = new User(Strings.fixed(6), sex, Numbers.random(100), Strings.random(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://javaclub.sourceforge.net/jorm.html
下载地址: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


...全文
577 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2011-09-30
  • 打赏
  • 举报
回复
有个相似的beankeeper,一年多没有更新了。
edotxp 2011-09-29
  • 打赏
  • 举报
回复
基本上不需要什么配置和映射文件之类的
edotxp 2011-09-29
  • 打赏
  • 举报
回复
用下你就知道了啊
wu_07 2011-09-29
  • 打赏
  • 举报
回复
一直用ibatis挺好的。

这个和其他ORM相比有什么优势么?
edotxp 2011-09-29
  • 打赏
  • 举报
回复
沙发~
edotxp 2011-09-29
  • 打赏
  • 举报
回复
是介于hibernate和ibatis之间的不错选择
niuniu20008 2011-09-29
  • 打赏
  • 举报
回复
收藏了
皮特张 2011-09-29
  • 打赏
  • 举报
回复
顶一个。
major57 2011-09-29
  • 打赏
  • 举报
回复
貌似不错诶...

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧