<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JdbcQueryJDBC封裝包

          聯(lián)合創(chuàng)作 · 2023-09-28 17:40

          JdbcQuery是一個(gè)對(duì)JDBC操作進(jìn)行封裝,使得在JAVA中執(zhí)行復(fù)雜的SQL語句和存儲(chǔ)過程變得像hibernate一樣的簡單,并能方便的將結(jié)果集以List、Map、Array的形式返回。

          1. 調(diào)用存儲(chǔ)過程示例:

          String strSql = "{call callcenter_pack.Get_TaskCaseCount(:P_UserID,:P_ErrorInfo,:P_OutData)}";
          JdbcQuery query = JdbcUtils.createNativeQuery(super.getConnection(), strSql);
          
          query.setParameter("P_UserID", 5);
          query.setOutParameter("P_ErrorInfo", OracleTypes.VARCHAR);      
          query.setOutParameter("P_OutData", OracleTypes.CURSOR);
          query.excuteProcedure();
          
          //params: P_UserID、 P_ErrorInfo、 P_OutData.
          //P_ErrorInfo 是一個(gè)輸出參數(shù), 用于返回存儲(chǔ)過程中的錯(cuò)誤信息
          //P_OutData 是一個(gè)游標(biāo)
          //可以方便的獲取一個(gè)List類型的結(jié)果
          String strError = query.getString("P_ErrorInfo");
          List<TaskBarCounter> dataList = query.getResultList("P_OutData",TaskBarCounter.class);
          query.closeCallableStatement();

          2. 調(diào)用SQL語句示例:

          public Result findCollect(final QueryMap qMap) {
          
              final StringBuilder sb = new StringBuilder();
              StringBuilder sbWhere = new StringBuilder();
          
              // 匯總查詢所需的列
              sb.append("select c.store_id, s.name,SUM(c.total_recharge) as total_recharge,");
              sb.append("SUM(c.total_payment) as total_payment,");
              sb.append("SUM(c.total_reversal) as total_reversal ");
          
              // 查詢條件
              sbWhere.append(" from collect c inner join store s on c.store_id = s.id ");
              sbWhere.append(" where c.created >= :start ");
              sbWhere.append(" and c.created <= :end "); 
              sbWhere.append(" and s.parent_id = :parentId ");
              sbWhere.append(" and s.name like :storeName");
              sbWhere.append(" GROUP BY c.store_id,s.name ");
          
              // 查詢數(shù)量
              final String countSQL = "select count(c.id)" + sbWhere.toString();
          
              // 分頁
              sb.append(sbWhere).append("limit :pageStart,:pageSize");
          
              // QueryMap 是一個(gè)功能強(qiáng)大的HashMap, 提供了各種類型的轉(zhuǎn)換, 
              // 例如: String 轉(zhuǎn) Integer、String 賺 Date 等等.
              qMap.convertsInt("pageIndex", "pageSize");
          
              // 計(jì)算分頁參數(shù): limit :pageStart,:pageSize
              qMap.setProperty("pageStart", qMap.getPageIndex()*qMap.getPageSize());
          
              // 設(shè)置參數(shù)parentId 例如SQL: and s.parent_id = :parentId
              qMap.setProperty("parentId", 5); 
          
              // getLikeValue可以格式化為 Like形式,例如: test => '%test%'
              qMap.setProperty("storeName", qMap.getLikeValue("storeName")); 
          
              final Result result = new Result();
          
              // 獲取hibernate數(shù)據(jù)源連接,基類中獲取,通過super.getSession().connection
              // 設(shè)置方法的參數(shù):數(shù)據(jù)庫連接,SQL語句,參數(shù)
              JdbcQuery query = JdbcUtils.createNativeQuery(super.getSession().connection, countSQL, qMap);
          
              // 獲取數(shù)量
              int count = query.getCount();
          
              // 設(shè)置方法的參數(shù):數(shù)據(jù)庫連接,SQL語句,參數(shù)
              JdbcQuery querys = JdbcUtils.createNativeQuery(super.getSession().connection, sb.toString(), qMap);
          
              // 獲取結(jié)果
              List list = querys.getResultList();
          
              // 將結(jié)果存入result中返回
              result.setTotal(count);
              result.setData(list);
          
              Log.i("result", result);
          
              return result;
          }
          
          
          //===========================================================================================   
          //============= Hibernate4.x 獲取數(shù)據(jù)庫連接方式 begin ============================================
          
              super.getCurrentSession().doWork(new Work() {  
                  public void execute(Connection connection) { 
                      // 獲取hibernate數(shù)據(jù)源連接:
                      // 設(shè)置方法的參數(shù):數(shù)據(jù)庫連接,SQL語句,參數(shù)
                      JdbcQuery query = JdbcUtils.createNativeQuery(connection, countSQL, qMap);
          
                      // 獲取數(shù)量
                      int count = query.getCount();
          
                      //設(shè)置方法的參數(shù):數(shù)據(jù)庫連接,SQL語句,參數(shù)
                      JdbcQuery querys = JdbcUtils.createNativeQuery(connection, sb.toString(), qMap);
                      // 獲取結(jié)果
          List list = querys.getResultList();
          
                      // 將結(jié)果存入result中返回
                      result.setTotal(count);
                      result.setData(list);
          
                      Log.i("result", result);
                  }
              });
          //============= Hibernate4.x 獲取數(shù)據(jù)庫連接方式 end ============================================
          
              return result;
          }
          瀏覽 17
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋在线成人片 | 火爆全网嫖妓达人金先生约战极品S空 | 久夜福利视频 | 免费试看黄色一级片 | 免费一级特黄特色黄录像 |