posts - 495,  comments - 11,  trackbacks - 0

          > 特點
            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, 目標定位于使用方便,簡單,后續(xù)會增加許多新的特性


           

          項目地址:http://javaclub.sourceforge.net/jorm.html

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

           

          posted on 2011-09-20 18:52 jadmin 閱讀(268) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 铁岭市| 丹凤县| 庆安县| 九江县| 张家界市| 张家港市| 楚雄市| 米泉市| 泰和县| 延津县| 湟中县| 保定市| 满洲里市| 信丰县| 玉林市| 合水县| 沧州市| 乌兰浩特市| 郎溪县| 鹤岗市| 偏关县| 吉木萨尔县| 佳木斯市| 西城区| 象州县| 太和县| 刚察县| 济源市| 营口市| 盐源县| 平邑县| 汉中市| 普格县| 阜新| 福安市| 衡南县| 洱源县| 青海省| 宁波市| 江都市| 慈利县|