jpa和mybatis实现简单查询方式比较

//jpa 的entity查询
String sql = "select * from tableName";
String coutSql = "select count(1) from(" + sql + ")";
String querySql = "SELECT *\r\n" + "FROM\r\n" + "    (\r\n" + "        SELECT t.*, rownum rn\r\n"
                + "        FROM\r\n" + "            (" + sql + ") t\r\n" + "    )\r\n" + "WHERE\r\n" + "    rn > " + m
                + " \r\n" + "AND rn <= " + n + "";
        Query queryArrive = entityManager.createNativeQuery(querySql);
        Query count = entityManager.createNativeQuery(coutSql);
        // 设置JPA的Query返回Map对象
        queryArrive.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        List<Map<String, Object>> list = queryArrive.getResultList();

List<BigDecimal> countList = count.getResultList();
        return RestUtils.wrappQueryResult(list, countList.get(0).intValue());

//引用com.sgcc.uap.core.rest-1.0.jar的package com.sgcc.uap.rest.utils; RestUtils类

public static QueryResultObject wrappQueryResult(List list, long recordCount) {
        QueryResultObject queryResult = new QueryResultObject();
        queryResult.setItemCount(recordCount);
        queryResult.setItems(list);
        return queryResult;
    }

以上是jpa的entity查询。

List<Map<String, Object>> mapList = mapper.listFrom(form, dateList.size());
        BigDecimal sum = mapList.stream().map(x -> new BigDecimal(String.valueOf(x.get("col")))).reduce(BigDecimal.ZERO, BigDecimal::add);
        int max = resultTrue1.stream().mapToInt(e -> new Integer(String.valueOf(e.get("col")))).max().orElse(0);
SELECT count(1) from (
select to_char(to_date('2021-01-01','yyyy-mm-dd')+level-1,'yyyy-mm-dd') as START_DATE 
from dual connect by level <=to_date('2021-06-20', 'yyyy-mm-dd' )-to_date('2021-01-01','yyyy-mm-dd')+1 )c

select ROUND(count(1) / 172, 2)  as cnt_avg ,
			 count(1) cnt,
       dicc.val
from park p
         left join
     (SELECT dic.TYPE, dic.code, dic.val, dic.id
      FROM dictable dic
      WHERE type = 'cj') dicc
     on dicc.id = p.RISK_ID
where 1=1 and c = 'x' group by dicc.val 


		

以上是xml里写sql,再mapper调用后返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值