package com.meeno.common.utils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.meeno.siliandan.area.entity.MiningArea;
import com.meenoframework.util.PageData;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Component; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; /**
* @Author: GoslingWu
* @Date: Created in 2020/11/11
* @Description: JDBC工具类
*/
@Component
@Slf4j
public class JdbcTemplateUtils { private static JdbcTemplate jdbcTemplate; @Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
JdbcTemplateUtils.jdbcTemplate = jdbcTemplate;
} /**
* jdbc分页
* @param sql
* @param params
* @param pageable
* @param clazz
* @param <T>
* @return
*/
public static <T> PageData<T> page(String sql, List<Object> params, Pageable pageable, Class<T> clazz){
return page(sql, params, (int) pageable.getOffset(), pageable.getPageSize(), clazz);
} /**
* jdbc分页
* @param sql
* @param params
* @param pageIndex
* @param pageSize
* @param clazz
* @param <T>
* @return
*/
public static <T> PageData<T> page(String sql, List<Object> params, Integer pageIndex, Integer pageSize, Class<T> clazz){ String selectSql = " select * ";
Integer index = pageIndex;
String limit = " limit " + index + " , " + pageSize;
String resultSql = selectSql + sql + limit;
List<Map<String, Object>> mapList = jdbcTemplate.queryForList(resultSql, params.toArray()); List<T> list = mapList.stream()
.map(stringObjectMap -> JSONObject.parseObject(JSONObject.toJSONString(stringObjectMap), clazz))
.collect(Collectors.toList()); String countSql = " select count(*) ";
Long count = jdbcTemplate.queryForObject(countSql + sql, params.toArray(), Long.class); PageData<T> pageData = new PageData<T>(count, list); return pageData;
} }

JdbcTemplateUtils的更多相关文章

  1. shiro会话管理

    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...

  2. 2017.2.7 开涛shiro教程-第六章-Realm及相关对象(一)

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第六章 Realm及相关对象 1.用户.角色.权限的关系 用户和角 ...

  3. 花果山第一届猿类分级考试实录--Talk is cheap,Show me the code

    本故事纯属虚构,如有雷同,纯属巧合! 故事背景 悟空师徒4人取经回来后,因不耐收到管教,就回到了花果山,带领一帮猴子猴孙逍遥自在的过日子,奈何因在阎王殿里将生死薄中的猴子猴孙的名字都划去了,猴子猴孙是 ...

  4. 第十章 会话管理——《跟我学Shiro》

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2028675 目录贴:跟我学Shiro目录贴 Shiro提供了完整的企业级会话管理功能,不依赖于 ...

  5. Shiro学习(10)Session管理

    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...

随机推荐

  1. C语言:位运算

    所谓位运算,就是对一个比特(Bit)位进行操作.在<数据在内存中的存储>一节中讲到,比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了.C语言 ...

  2. Spring Boot入门学习必知道企业常用的Starter

    SpringBoot企业常用的 starter SpringBoot简介 SpringBoot运行 SpringBoot目录结构 整合JdbcTemplate @RestController 整合JS ...

  3. airodump-ng的使用及显示

    PWR   表示所接收的信号的强度.表示为负数,数值赿大表示信号赿强.(绝对值赿大,数据赿值小) beacons  表示网卡接收到的AP发出的信号个数

  4. ZYNQ Linux 移植:包含petalinux移植和手动移植debian9

    参考: https://electronut.in/workflow-for-using-linux-on-xilinx-zynq/ https://blog.csdn.net/m0_37545528 ...

  5. Pytorch系列:(八)学习率调整方法

    学习率的调整会对网络模型的训练造成巨大的影响,本文总结了pytorch自带的学习率调整函数,以及其使用方法. 设置网络固定学习率 设置固定学习率的方法有两种,第一种是直接设置一些学习率,网络从头到尾都 ...

  6. MySQL触发器笔记

    当操作了某张数据表时,希望同时触发一些动作或行为,就可以使用触发器完成. 当操作微博表时,同时生成一条日志记录 -- 插入时触发 create trigger tri_weiboAdd after i ...

  7. 每天五分钟Go - 变量

    变量的声明 1.使用关键词 var 定义,声明后若不赋值,则使用默认值 var 变量名 [变量类型] [=初始值] var a,b,c string var e,f int = 0,1 声明时,如果省 ...

  8. POJ4007 Flood-it! 题解

    调得我快死了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!! 先自己写了几发,老是 T,然后去看题解,大体思路居然都差不多,估计是自己写挂了orz. 几乎所有题解都有个vis数组,真 nm 看不懂到底是什么意思 ...

  9. Linux上常用插件的一些命令

    Linux上关于jdk tomcat MySQL dubbo等的一些启动,结束,查看状态的命名. 1.tomcat 运行tomcat cd bin/ 进入tomcat 的bin 文件夹,直接运行: . ...

  10. UnitTest + HTMLTestRunner

    #导入HTMLTestRunner类 from unitTest.tools1.HTMLTestRunner import HTMLTestRunner import unittest discove ...