> 特点
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<User> params = new SqlParams<User>("SELECT * FROM t_user WHERE id > ?", new Object[] { 6 });
params.setObjectClass(User.class);
params.setFirstResult(3);
params.setMaxResults(10);
List<User> users = session.list(params);
// 查询单个属性
String sql = "SELECT name FROM t_user WHERE id = 28";
String name = session.queryUniqueObject(sql);
// 查询属性列表
List<String> names = session.list(String.class, "SELECT name FROM t_user WHERE id > ?", 200);
List<Integer> 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://sourceforge.net/projects/javaclub/files
发布一款精巧的Java ORM Framework
精选 转载下一篇:我的友情链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
一款更加轻量级的虚拟机:Multipass
一款超级轻量级的虚拟机:Multipass。它专为想要通过单个命令获得全新 Ubuntu 环境的开发人员而设计,下载一个全新的镜像需要几秒钟的时间,并且在几分钟内就可以启动并运行VM。
bash Ubuntu ubuntu Multipass 虚拟机 -
发布一款android小应用-《诗词大全》
诗词大全收集了4000多首诗词以及诗词赏析。历史跨度从先秦到近现代,是史上收录最全的诗词。 软件分类清晰,有朝代列表,作者列表,诗词列表,诗词搜索,诗词收藏。诗词分享,您可以将诗词通过短信,Emai...
Google 技术 android 移动开发 搜索 系统设置 -
自己动手设计一款iOS自动构建发布工具
在iOS开发中,开发者经常会需要打各种各样的软件包。有些提交测试,有些提交appstore,还有些可能要提交第三方平台。一款全自动的打包发布工具可以帮助我们事半功倍的完成这些工作。
自动构建 自动化打包工具 自动化集成工具 动手开发iOS打包 iOS自动化构建工具 -
一款“灵动”的滑动按钮
实现效果图,大家可以看着这个效果,思考一下怎么实现的。主要讲解的内容 文章将会选择以下内容进行讲...
Android 滑动按钮 ide 指定位置 ci