JDBCTemplate.java
package com.pk.xjgs.util; import java.sql.Connection;
import java.sql.SQLException;
import java.util.List; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler; public class JDBCTemplate {
private QueryRunner queryRunner = new QueryRunner(); /**
* @param sql
* sql语句
* @param params
* 参数列表 按照sql中出现的顺序去写
* @return
* @function:处理增删改的sql语句的方法
*/
public int update(String sql, Object[] params) {
int i = 0;
Connection conn = null;
try {
conn = DBConn.getConn();
i = queryRunner.update(conn, sql, params);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConn.closeConn(conn);
}
return i;
} /**
* @param sql
* @param params
* @return
* @function:执行批处理的方法
*/
public int[] bacth(String sql, Object[][] params) {
int[] i = null;
Connection conn = null;
try {
conn = DBConn.getConn();
i = queryRunner.batch(conn, sql, params);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConn.closeConn(conn);
}
return i;
} /**
* @param sql
* @param params
* @param requiredType
* 返回的对象类
* @return 返回对象
* @function:返回对象的查询sql
*/
@SuppressWarnings("unchecked")
public Object queryForBean(String sql, Object[] params, Class requiredType) {
Object object = null;
Connection conn = null;
try {
conn = DBConn.getConn();
object = queryRunner.query(conn, sql,
new BeanHandler(requiredType), params);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConn.closeConn(conn);
}
return object;
} /**
* @param sql
* @param params
* @param requiredType
* @return
* @function:返回对象的集合
*/
@SuppressWarnings("unchecked")
public List queryForBeanList(String sql, Object[] params, Class requiredType) {
Connection conn = null;
List list = null;
try {
conn = DBConn.getConn();
list = (List) queryRunner.query(conn, sql, new BeanListHandler(
requiredType), params);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConn.closeConn(conn);
}
return list;
} /**
* @param sql
* @param params
* @param colName
* 要查询的字段的名字
* @return
*/
public Object queryForObject(String sql, Object[] params) {
Connection conn = null;
Object object = null;
try {
conn = DBConn.getConn();
object = queryRunner.query(conn, sql, new ScalarHandler(1),
params);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConn.closeConn(conn);
}
return object;
} /**
* @param sql
* @param params
* @return
* @function:查询组函数的方法 比如 select count(id) from userinfo
*/
public int count(String sql, Object[] params) { Object o = queryForObject(sql, params);
if (o instanceof Integer) {
return (Integer) o;
}
if (o instanceof Long) {
Long l = (Long) o;
return l.intValue();
} String s = (String) o;
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return 0;
}
}
}
JDBCTemplate.java的更多相关文章
- SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [ SELECT ...
- JdbcTemplate源码解析
先写一个测试代码 package jdbc; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arr ...
- java.sql.SQLException: Field 'id' doesn't have a default value
1:id 列要设置成自增,自动赋值 java.sql.SQLException: Field 'id' doesn't have a default value at com.mysql.jdbc.S ...
- spring jdbcTemplate 事务,各种诡异,包你醍醐灌顶!
前言 项目框架主要是spring,持久层框架没有用mybtis,用的是spring 的jdbc: 业务需求:给应用添加领域(一个领域包含多个应用,一个应用可能属于多个领域,一般而言一个应用只属于一个领 ...
- Caused by: java.lang.InstantiationException: cn.at.bean.domain.ConstantInt
org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException ...
- 20. Spring Boot 默认、自定义数据源 、配置多个数据源 jdbcTemplate操作DB
Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 0. 创建Spring Boot项目,选中 ...
- java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方案
导入commons-logging-1.2.jar辅助类包即可. 报错提示: Exception in thread "main" java.lang.NoClassDefFoun ...
- Java异常处理设计(二)
考虑对JDK的底层堆栈信息进行处理,一种是重写JDK的Throwable,另一种是在原错误堆栈信息上进行“二次加工”.目前这两种方式我都实现了,效果非常好. 这篇文章主要记录对错误堆栈进行“二次加工” ...
- java.lang.IllegalStateException: Mapped class was not specified
错误如下:java.lang.IllegalStateException: Mapped class was not specifiedat org.springframework.util.Asse ...
随机推荐
- Delphi XE5 android popumenu
实现下拉菜单式的效果,本代码是国外的网站上下载的..,不是原创. 源码下载地址 : http://files.cnblogs.com/nywh2008/popumenu.rar
- @Entity设置实体lazy = false
问题描述 在通过Hibernate查询Bean信息时报以下异常信息: org.hibernate.LazyInitializationException: could not initialize p ...
- LocalStorage 本地存储
首先自然是检测浏览器是否支持本地存储.在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在 ...
- 在smarty模板中嵌入php代码
我个人并不太喜欢smarty的语法,写起来比较啰嗦易出现匹配出错,但是旧项目中有许多工程都是采用它作模板.最近需要在此上稍微加一些PHP的内容,但我不想在模板控制层去一个一个assign,而想在模板文 ...
- windows下游戏服务器端框架Firefly安装说明及demo运行
原地址:http://blog.csdn.net/wangqiuyun/article/details/11150503 本来公司一个网游服务器端选定了pomelo框架,后来出了个Firefly,为做 ...
- XSS 攻击在它的面前都弱爆了!
虽然双十一刚刚过去不久,但是对很多工程师来说,连续熬夜加班的「噩梦」似乎还没有过去.尤其是像双十一这种活动,对于电商网站的工程师们来说,他们需要彻夜的加班加点来保障网站的稳定性和安全性.当然,面对上千 ...
- JS插件excanvas的使用方法
这个还没有想好怎么写,等写好后再发布 试用了excanvas.js,生成静态统计图 IE下使用excanvas.js的注意事项
- [ffmpeg 扩展第三方库编译系列] 关于libopenjpeg mingw32编译问题
在mingw32如果想编译libopenjpeg 会比较麻烦 会出现undefined reference to `_imp__opj_destroy_cstr_info@4' 等错误 因此编译时候需 ...
- ASP.NET中的FileUpload文件上传控件的使用
本篇文章教大家如何将客户端的图片或者文件上传到服务器: 无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等). 第一步:放入以下三个控件 Image控件,Fi ...
- SCOI2009游戏
1025: [SCOI2009]游戏 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1065 Solved: 673[Submit][Status] ...