当前位置:  软件>java软件

JDBC ORM Framework JORM

    来源:    发布时间:2015-02-06

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

> 特点
  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
  
           net.sf.javaclub
           gerald-jorm
           1.0.7.GA
             

> 示例
  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, 目标定位于使用方便,简单,后续会增加许多新的特性

下载地址:CSS属性参考手册 iis7站长之家

 

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

 


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 高性能JDBC驱动 DataDirect JDBC Drivers
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • 关于JDBC-ODBC和JDBC的区别
  • JDBC驱动代理 HA-JDBC
  • 访问MS SQL能不能直接用JDBC,如果能相应的JDBC Driver从哪里得到?
  • easy question:jdbc与jdk需要分别安装吗。如何设置jdbc的classpath
  • JDBC 工具包 Midao JDBC
  • 请问JDBC和JDBC-ODBC有什么区别?是不是连接的时候也有所不同。
  • JDBC 驱动程序 Drizzle-JDBC
  • JDBC执行日志 JDBC Logger
  • OLAP数据源的JDBC驱动 Jdbc4Olap
  • 讨论:纯java的JDBC与JDBC-ODBC桥的比较?那种效率高、快?(面向服务端)
  • jdbc1.2 jdbc2.0里面的类是干什么用的?
  • 请问连接本机数据库的JDBC,和连接远程的JDBC有没有区别?
  • jdbc连接数据库,能否有jdbc中的方法进行安全设置:
  • 百万火急:一个 jsp的jdbc的问题,用的是jdbc,odbc桥。
  • 问一个简单的问题,我装了oracle 8.05,我并没有发有发现JDBC这个目录,是不是我要下载jdbc for oracle。
  • jdbc 连接sybase11.9时出错,错误提示:JZ0D5: 装载协议 com.sybase.jdbc2.tds.tds 时出错
  • java开发数据库,一般是用JDBC-ODBC桥,还是JDBC驱动程序连接数据库呢?
  • 请问有没有mdb的jdbc驱动?我不想用jdbc-odbc了.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3