package com.spf.common.sql;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.*;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Author SPF
* @Date 2017/5/24
*/
@Component
public class SqlTemplate {
@Autowired
private DataSource dataSource;
private QueryRunner queryRunner;
private static final Logger LOG = Logger.getLogger(SqlTemplate.class);
public void setDataSource(BasicDataSource dataSource) {
this.dataSource = dataSource;
}
/**
* 执行sql语句
* @param sql sql语句
* @return 受影响的行数
*/
public int update(String sql) {
return update(sql, null);
}
/**
* 执行sql语句
* <code>
* executeUpdate("update user set username = 'kitty' where username = ?", "hello kitty");
* </code>
* @param sql sql语句
* @param param 参数
* @return 受影响的行数
*/
public int update(String sql, Object param) {
return update(sql, new Object[] { param });
}
/**
* 执行sql语句
* @param sql sql语句
* @param params 参数数组
* @return 受影响的行数
*/
public int update(String sql, Object[] params) {
queryRunner = new QueryRunner(dataSource,true);
int affectedRows = 0;
try {
if (params == null) {
affectedRows = queryRunner.update(sql);
} else {
affectedRows = queryRunner.update(sql, params);
}
LOG.info("SQL--->" + sql);
LOG.info("params--->" + Arrays.toString(params));
} catch (SQLException e) {
LOG.error("Error occured while attempting to update data", e);
}
return affectedRows;
}
/**
* 执行查询,将每行的结果保存到一个Map对象中,然后将所有Map对象保存到List中
* @param sql sql语句
* @return 查询结果
*/
public List<Map<String, Object>> queryForList(String sql) {
return queryForPageList(sql, null, null, null);
}
/**
* 执行查询,将每行的结果保存到一个Map对象中,然后将所有Map对象保存到List中
* @param sql sql语句
* @param param 参数
* @return 查询结果
*/
public List<Map<String, Object>> queryForList(String sql, Object param) {
return queryForPageList(sql, new Object[] {param}, null, null);
}
/**
* 执行分页查询
* @param sql sql语句
* @param pageNo 当前页
* @param pageSize 每页显示条数
* @return 结果
*/
public List<Map<String, Object>> queryForPageList(String sql, Integer pageNo, Integer pageSize) {
return queryForPageList(sql, null, pageNo, pageSize);
}
/**
* 执行分页查询
* @param sql sql语句
* @param param 参数
* @param pageNo 当前页
* @param pageSize 每页查询条数
* @return 结果
*/
public List<Map<String, Object>> queryForPageList(String sql, Object param, Integer pageNo, Integer pageSize) {
return queryForPageList(sql, new Object[] {param}, pageNo, pageSize);
}
public List<Map<String, Object>> queryForList(String sql, Object[] params) {
return queryForPageList(sql, params, null, null);
}
/**
* 执行查询,将每行的结果保存到一个Map对象中,然后将所有Map对象保存到List中
* @param sql sql语句
* @param params 参数数组
* @return 查询结果
*/
@SuppressWarnings("unchecked")
public List<Map<String, Object>> queryForPageList(String sql, Object[] params, Integer pageNo, Integer pageSize) {
queryRunner = new QueryRunner(dataSource,true);
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
try {
if (params == null) {
if (pageNo !=null && pageSize != null) {
Integer index = (pageNo - 1) * pageSize;
Object[] param = {index, pageSize};
list = (List<Map<String, Object>>) queryRunner.query(sql + " LIMIT ?,?", new MapListHandler(), param);
LOG.info("SQL--->" + sql + " LIMIT ?,?");
LOG.info("params--->" + Arrays.toString(param));
} else {
list = (List<Map<String, Object>>) queryRunner.query(sql, new MapListHandler());
LOG.info("SQL--->" + sql);
}
} else {
if (pageNo !=null && pageSize != null) {
Integer index = (pageNo - 1) * pageSize;
List<Object> arr = new ArrayList<Object>();
for (Object obj : params) {
arr.add(obj);
}
arr.add(index);
arr.add(pageSize);
Object[] param = arr.toArray(); //将集合转化为数组
list = (List<Map<String, Object>>) queryRunner.query(sql + " LIMIT ?,?", new MapListHandler(), param);
LOG.info("SQL--->" + sql + " LIMIT ?,?");
LOG.info("params--->" + Arrays.toString(param));
} else {
list = (List<Map<String, Object>>) queryRunner.query(sql, new MapListHandler(), params);
LOG.info("SQL--->" + sql);
LOG.info("params--->" + Arrays.toString(params));
}
}
} catch (SQLException e) {
LOG.error("Error occured while attempting to query data", e);
}
return list;
}
/**
* 执行查询,将每行的结果保存到Bean中,然后将所有Bean保存到List中
* @param entityClass 类名
* @param sql sql语句
* @return 查询结果
*/
public <T> List<T> queryForList(Class<T> entityClass, String sql) {
return queryForPageList(entityClass, sql, null, null, null);
}
/**
* 执行查询,将每行的结果保存到Bean中,然后将所有Bean保存到List中
* @param entityClass 类名
* @param sql sql语句
* @param param 参数
* @return 查询结果
*/
public <T> List<T> queryForList(Class<T> entityClass, String sql, Object param) {
return queryForPageList(entityClass, sql, new Object[] { param }, null, null);
}
/**
* 执行分页查询,将每行的结果保存到Bean中,然后将所有Bean保存到List中
* @param entityClass 类名
* @param sql sql语句
* @return 查询结果
*/
public <T> List<T> queryForPageList(Class<T> entityClass, String sql, Integer index, Integer pageSize) {
return queryForPageList(entityClass, sql, null, index, pageSize);
}
/**
* 执行分页查询,将每行的结果保存到Bean中,然后将所有Bean保存到List中
* @param entityClass 类名
* @param sql sql语句
* @param param 参数
* @return 查询结果
*/
public <T> List<T> queryForPageList(Class<T> entityClass, String sql, Object param, Integer pageNo, Integer pageSize) {
return queryForPageList(entityClass, sql, new Object[] { param }, pageNo, pageSize);
}
public <T> List<T> queryForList(Class<T> entityClass, String sql, Object[] params) {
return queryForPageList(entityClass, sql, params, null, null);
}
/**
* 执行查询,将每行
没有合适的资源?快使用搜索试试~ 我知道了~
SpringMVC+maven+idel+mybatis-plus多模块项目
共370个文件
xml:115个
jar:79个
class:67个
4星 · 超过85%的资源 需积分: 50 174 下载量 146 浏览量
2017-07-07
15:37:22
上传
评论 18
收藏 69.09MB ZIP 举报
温馨提示
使用springMVC+mybatis-plus技术结合maven多模块管理,idel编辑器集成一系列功能 如:邮件发送,敏感词替换,微信接入接口工具类 WeiXinUtils,接口签名加密验证,sitemesh3页面装饰,redis 缓存,execl导出,定时器,generator等功能
资源推荐
资源详情
资源评论
收起资源包目录
SpringMVC+maven+idel+mybatis-plus多模块项目 (370个子文件)
SqlTemplate.class 11KB
RSA.class 7KB
BaseUtils.class 7KB
EmailService.class 7KB
MybatisPlusUtils.class 6KB
RedisCacheStorageImpl.class 6KB
XlsxAbstractExcelView.class 5KB
QuartzManager.class 5KB
HttpClientUtils.class 4KB
TestController.class 4KB
TestController.class 4KB
ObjectExcelView.class 4KB
test.class 4KB
test.class 4KB
SensitiveWordInit.class 4KB
SensitivewordFilter.class 4KB
UserEntity.class 3KB
ExeclDownController.class 3KB
ExeclDownController.class 3KB
UserService.class 3KB
AES.class 3KB
SignInterceptor.class 3KB
GeneratorUtils.class 3KB
HeadInterceptor.class 3KB
SfUser.class 2KB
SfUserController.class 2KB
SfUserController.class 2KB
interceptor.class 2KB
SignUtil.class 2KB
ResultJson.class 2KB
WeiXinUtils.class 2KB
DynamicAddQuartz.class 2KB
DynamicAddQuartz.class 2KB
ISfUserServiceImpl.class 2KB
UserRecordController.class 2KB
UserRecordController.class 2KB
LoadingCacheUtils$2.class 1KB
LoadingCacheUtils.class 1KB
MybatisPlusUtils$2.class 1KB
redisTest.class 1KB
MailController.class 1KB
MailController.class 1KB
RedisClient.class 1KB
HttpChientTest.class 1KB
ApiSignController.class 1KB
ApiSignController.class 1KB
MyController.class 1KB
MyController.class 1KB
UserRecordEntity.class 1KB
MybatisPlusUtils$3.class 1KB
MailAuthenticatorUtils.class 1KB
LoadingCacheUtils$1.class 1KB
MybatisPlusUtils$1.class 1KB
InterceptorController.class 1KB
InterceptorController.class 1KB
MyJob2.class 998B
MyJob2.class 998B
MyJob.class 990B
MyJob.class 990B
TimerController.class 946B
TimerController.class 946B
UserMapper.class 797B
UserRecordService.class 756B
RedisCacheStorage.class 716B
ISfUserService.class 489B
UserRecordMapper.class 469B
SfUserMapper.class 366B
bootstrap.min.css 118KB
bootstrap.min.css 118KB
ssm-web.iml 8KB
ssm-service.iml 8KB
ssm-common.iml 8KB
ssm-mapper.iml 8KB
ssm-model.iml 7KB
SSMPlus.iml 7KB
poi-ooxml-schemas-3.15.jar 5.59MB
xmlbeans-2.6.0.jar 2.6MB
poi-3.15.jar 2.46MB
guava-20.0.jar 2.33MB
aspectjweaver-1.8.9.jar 1.78MB
bcprov-jdk15-1.45.jar 1.59MB
mybatis-3.4.4.jar 1.53MB
poi-ooxml-3.15.jar 1.28MB
spring-context-4.1.8.RELEASE.jar 1003KB
spring-core-4.1.8.RELEASE.jar 986KB
spring-webmvc-4.1.8.RELEASE.jar 767KB
jackson-mapper-asl-1.9.13.jar 762KB
commons-collections4-4.1.jar 734KB
javassist-3.20.0-GA.jar 733KB
javaee-api-5.0-1.jar 731KB
spring-web-4.1.8.RELEASE.jar 705KB
spring-beans-4.1.8.RELEASE.jar 696KB
mysql-connector-java-5.1.6.jar 687KB
quartz-2.1.7.jar 568KB
commons-collections-3.2.1.jar 562KB
jedis-2.9.0.jar 541KB
generator-1.3.2.jar 514KB
mail-1.4.7.jar 509KB
spring-test-4.1.8.RELEASE.jar 492KB
log4j-1.2.17.jar 478KB
共 370 条
- 1
- 2
- 3
- 4
资源评论
- zskang_love2017-07-18可以,蛮好的,对我非常有用,希望以后再更新。
- yangerran2017-07-18非常好的资源,学习了
- 程序猿小白..2017-11-23还不知道怎么样先试一下
- 绿源20082017-12-02下载不成功 再次下载提示已完成下载 需评价后再下载
十有八⑨
- 粉丝: 68
- 资源: 55
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功