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 ...
随机推荐
- Hibernate应用SQL查询返回实体类型
Hibernate应用SQL查询返回实体类型 Hibernate使用SQL查询返回实体类型 以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中.Hibernate中,可以自动 ...
- [JavaScript] js验证身份证
function checkIdCard(){ var vcity={11:"北京",12:"天津",13:"河北",14:&quo ...
- wamp设置实现本机IP或者局域网访问 (转)
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all #以前是De ...
- Partition an array around an interger
Partition an array of integers around a value such taht all elements less than x come before element ...
- 团体程序设计天梯赛-练习集L2-007. 家庭房产
L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个 ...
- 如何优化 Java 性能?
对于 Java 性能比较关心的同学大概都知道<Java Performance>这本书,一般而言,很多同学在日常写 Java Code 的时候很少去关心性能问题,但是在我们写 Code 的 ...
- What is the innovator’s solution——什么才是创新的解决方案1
最近学习MOT(management of Technology),研读了Christensen的<创新者的窘境>和<创新者的解答>,以下简称创新者系列.总觉得需要写点儿什么. ...
- 设置window窗口的背景色为护眼色
win7设置:桌面右键 -> 个性化 -> 窗口颜色 -> 高级外观设置 -> '项目'下拉菜单 -> '窗口'
- redis面试
1. 使用Redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...
- 【转】linux C++ 获取文件信息 stat函数详解
stat函数讲解 表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat ...