使用commons-dbutils-1.3.jar,请自行下载.
关于Connection对象和事务在业务层作了处理.
主要代码如下:
package keel.util;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.log4j.Logger;
/**
* 操作数据库方法
* @author 蔡治平
*
*/
public class SqlUtil {
private static Logger logger = Logger.getLogger(SqlUtil.class);
private static QueryRunner qr = new QueryRunner();
/**
* 查询
* @param conn
* @param sql
* @param params
* @return List<Map<String, Object>>
*/
@SuppressWarnings("deprecation")
public static List<Map<String, Object>> search(Connection conn, String sql, Object[] params){
List<Map<String, Object>> mapList = null;
try {
if(params==null){
mapList = qr.query(conn, sql, new MapListHandler());
}else{
mapList = qr.query(conn, sql, params, new MapListHandler());
}
} catch (Exception e) {
logger.error("查询出现异常!原因:"+e);
}
return mapList;
}
/**
* 查询,将结果返回到bean中,多个bean通过List包装返回
* @param <T>
* @param conn
* @param entityClass
* @param sql
* @param params
* @return List<T>
*/
@SuppressWarnings("unchecked")
public static <T>List<T> search(Connection conn, Class<T> entityClass, String sql, Object[] params){
List<T> list = null;
try{
if (params == null) {
list = (List<T>) qr.query(conn, sql, new BeanListHandler(entityClass));
} else {
list = (List<T>) qr.query(conn, sql, new BeanListHandler(entityClass), params);
}
}catch(Exception e){
logger.error("查询出现异常!原因:"+e);
}
return list;
}
/**
* 通过主键查找记录
* @param conn
* @param sql
* @param params
* @return Map<String, Object>
*/
public static Map<String, Object> getById(Connection conn, String sql, Object[] params){
Map<String, Object> map = null;
try{
if (params == null) {
map = qr.query(conn, sql, new MapHandler());
} else {
map = qr.query(conn, sql, new MapHandler(), params);
}
}catch (Exception e) {
logger.error("查询出现异常!原因:"+e);
}
return map;
}
/**
* 查询表的记录总数
* @param conn
* @param table
* @return int
*/
public static int getTotal(Connection conn, String table){
int total = 0;
String field = "TOTAL";
if(conn!=null){
String sql = "SELECT COUNT(*) AS "+field+" FROM "+table;
try {
Map<String, Object> map = (Map<String, Object>) qr.query(conn, sql, new MapHandler());
String n = map.get(field).toString();
total = Integer.parseInt(n);
} catch (Exception e) {
logger.error("查询["+table+"]表记录总数出现异常!原因:"+e);
}
}else{
logger.error("查询["+table+"]表记录总数出现异常!原因:连接为空!");
}
return total;
}
/**
* 更新,返回更新记录条数
* @param conn
* @param sql
* @param params
* @return int
*/
public static int update(Connection conn, String sql, Object[] params){
int n = 0;
try{
if(params==null){
n = qr.update(conn, sql);
}else{
n = qr.update(conn, sql, params);
}
}catch(Exception e){
logger.error("更新出现异常!原因:"+e);
}
return n;
}
}
测试代码片段:
List<Map<String, Object>> list = SqlUtil.search(conn, sql, new Object[]{"1001","admin"});
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).get("id"));
System.out.println(list.get(i).get("userName"));
}
List<User> userList = SqlUtil.search(conn, User.class, sql, new Object[]{"1001","admin"});
for(int i=0;i<userList.size();i++){
System.out.println(userList.get(i).getId());
System.out.println(userList.get(i).getUserName());
}
String sql1 = "update rg_user set flag = 1 where id=?";
int n = SqlUtil.update(conn, sql1, new Object[]{"1001"});
System.out.println(n);
String sql2 = "select * from rg_user where id ='1001'";
Map<String,Object> map = SqlUtil.getById(conn, sql2, null);
System.out.println(map.get("id"));
分享到:
相关推荐
DBUtils是Apache软件基金会开发的一个开源Java库,它提供了一套简单、易用且高度封装的数据库操作API,主要用于简化Java应用程序对数据库的访问。DBUtils的核心思想是为数据库操作提供一个安全、高效的抽象层,使得...
Python的dbutils模块是Apache的一个开源项目,它提供了一套用于数据库操作的工具类,能够帮助简化数据库连接和管理,提高开发效率。本教程将详细讲解如何对dbutils进行简单的封装,以更好地适应实际的Python数据库...
DBUtils1通常是一个自定义的辅助类,用于封装数据库操作,使得代码更加模块化和易于管理。它可能包含连接数据库、执行SQL语句、处理结果集等方法。以下是一些可能包含在DBUtils1类中的关键功能: 1. **连接与断开...
DBUtils是Apache Commons项目中的一个Java库,专为简化数据库操作而设计。它是一个轻量级的工具类库,提供了一套简洁、高效且线程安全的API,可以帮助开发者更方便地执行SQL语句,处理结果集,以及管理数据库连接。...
以下是一个使用DBCP连接池的示例配置: ```java Properties props = new Properties(); props.setProperty("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver"); props.setProperty("url", "jdbc:sqlserver...
Apache DBUtils是一个基于Java的开源库,它提供了一种简单且有效的处理数据库连接的方法,减少了在应用程序中编写数据库操作代码的复杂性。DBUtils的主要设计目标是简化数据库访问,通过提供一套实用工具来处理常见...
DBUtils是Apache组织提供的一个小型且实用的Java数据库操作工具包,它简化了常见的数据库操作,如查询、更新、插入和删除等。DBUtils的核心功能是QueryRunner类,它提供了基于预编译SQL语句的操作方法,可以有效地...
1)一个DAO类封装的是一张表操作细节 2)DAO类命名规则:表名 + Dao。比如封装 emp 表操作细节:EmpDao;封装Dept表操作细节:DeptDao 3) DAO类所在包命名规则:公司网站域名.dao , 比如 com.bjpowernode.dao
总结来说,这个Java数据库操作类实现了基于连接池的数据库访问,通过`ConnectionPool`管理连接,`DBUtilsPool`结合DBUtils简化JDBC操作,`Config`存储数据库配置,而`DBManager`作为入口点协调整个过程。在Eclipse...
DBUtils是Apache Commons库中的一个组件,它提供了一套简单易用的数据库操作API,用于简化Java中的数据库访问。在本项目中,你将找到一个自己编写的简易DBUtils实现,虽然它不是Apache官方的DBUtils,但其设计思想和...
在阅读博文《dbutils封装ORM 实现BaseDAO》(链接:https://shizhijian870525.iteye.com/blog/1767343)时,你可以深入学习如何结合`dbutils` 库来设计和实现一个高效、易用的DAO框架。文件"Dbutils"可能是作者提供...
使用了Apache Commons DbUtils库中的类和方法封装JDBC,使用了org.apache.commons.dbutils.Query...这些类是Apache Commons DbUtils库提供的一部分,用于简化JDBC编程,并提供了一些常见数据库操作的实用工具方法。
DBUtils的主要目标是简化JDBC的使用,减少数据库操作中的异常处理和资源管理,使得开发者能够更加专注于业务逻辑。 在使用DBUtils之前,首先需要引入对应的jar包,即`commons-dbutils-1.7.jar`。这个库包含了...
3. 数据库兼容性:通用数据库操作类应尽可能地兼容多种数据库,考虑使用JDBC的兼容层如Apache的DBUtils库,以减少不同数据库之间的差异。 4. 安全性:避免在代码中硬编码数据库凭据,而是使用配置文件,提高系统的...
DbUtils 1.8.1版本是其稳定的一个版本,它包含了对数据库操作的基本功能,如执行SQL语句、处理结果集、管理数据库连接等。 DbUtils的核心设计理念是基于JDBC但又高于JDBC,它将JDBC的一些繁琐工作进行了封装,比如...
Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库操作,如执行SQL语句、处理结果集等。在Java开发中,使用Dbutils可以避免大量重复的JDBC模板...
在IT行业中,数据库操作是日常开发中的重要环节,而`dbutils`是一个非常实用的Java数据库操作工具包,它简化了对数据库进行增删改查(CRUD)操作的过程。本示例着重介绍如何结合`dbutils`与Oracle数据库进行高效的...
3. **dbUtils.js**:这个文件很可能是封装数据库操作的工具类。它可能包含了初始化连接池、执行SQL语句、处理结果集等通用功能。通过这样的封装,可以简化代码,提高代码复用性,同时保持良好的模块化结构。 4. **...
Apache Commons DBUtils是Apache软件基金会开发的一个开源项目,它提供了一套简洁、高效且实用的工具类,用于简化Java应用程序中的数据库操作。这个项目的最新版本为"commons-dbutils-1.4.jar",它的主要目标是减轻...