`
阿杜杜不是阿木木
  • 浏览: 21495 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Apache的DBUtil处理工具类并集成了JNDI

 
阅读更多

package com.fdmis.util;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
public class DBUtils {
	
	//数据源配置
	private static final String DATA_SOURCE="java:EFLOWSource"; 
	private DataSource dataSource=this.getDataSource();
	
	/**
	*ArrayHandler:把结果集中的第一行数据转成对象数组。
	*ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
	*BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
	*BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
	*ColumnListHandler:将结果集中某一列的数据存放到List中。
	*KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
	*MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
	*MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
	 */
	
	/**
	 * 得到第一行数据,类型List<Object>
	 */
	public List<Object> getOneByArray(String sql) throws SQLException{
		 QueryRunner qr = new QueryRunner(dataSource);
		 Object result[] = (Object[]) qr.query(sql, new ArrayHandler());
		 return Arrays.asList(result);
	}

	/**
	 * 得到每一行数据,类型List<Array>
	 */
	public List<Object[]> getAllByArray(String sql) throws SQLException{
         QueryRunner qr = new QueryRunner(dataSource);
         List<Object[]> list = (List<Object[]>) qr.query(sql, new ArrayListHandler());
         return list;
     }
	
	/**
	 * 得到第一行数据,类型Map<String,Object>
	 */
	public Map<String,Object> getOneByMapHandler(String sql) throws SQLException{
         QueryRunner qr = new QueryRunner(dataSource);
         Map<String,Object> map = (Map<String,Object>) qr.query(sql, new MapHandler());
         return map;
     }
	
	/**
	 * 得到每一行数据,类型List<Map<String,Object>>
	 */
	public List<Map<String,Object>> getAllMapListHandler(String sql) throws SQLException{
         QueryRunner qr = new QueryRunner(dataSource);
         List<Map<String,Object>> list = (List<Map<String,Object>>) qr.query(sql, new MapListHandler());
         return list;

     }
	
	/**
	 * 得到每一行数据,类型JsonString
	 */
	public String getAllJsoonHandler(String sql) throws SQLException{
         QueryRunner qr = new QueryRunner(dataSource);
         List<Map<String,Object>> list = (List<Map<String,Object>>) qr.query(sql, new MapListHandler());
         JsonUtil jsonUtil= new JsonUtil();
         return jsonUtil.toStrings(list);
     }
	
	/**
	 * 得到第一行数据,类型Bean.class
	 */
	@SuppressWarnings("rawtypes")
	public <T> T find(String sql,final Class<T> type) throws SQLException {
        QueryRunner qr = new QueryRunner(dataSource);
        @SuppressWarnings("unchecked")
		T t = (T) qr.query(sql,new BeanHandler(type));
        return t;
     }
	 
	 /**
	  * 得到每一行数据,类型List<Bean.class>
	  */
	 @SuppressWarnings("rawtypes")
	 public <T>List<T> getAll(String sql,final Class<T> type) throws SQLException {
         QueryRunner qr = new QueryRunner(dataSource);
         @SuppressWarnings("unchecked")
         List<T> list = (List<T>) qr.query(sql, new BeanListHandler(type));
         return list;
     }
	
	/**
	 * 得到总条数
	 */
	@SuppressWarnings("rawtypes")
    public Integer getScalarHandler(String sql) throws SQLException{
        QueryRunner qr = new QueryRunner(dataSource);
        @SuppressWarnings("unchecked")
		Integer count = qr.query(sql, new ScalarHandler(1));
        return count;
    }
    
	//获取数据源
    private DataSource getDataSource(){
		try {
			Context ctx = new InitialContext();
			DataSource ds = (DataSource) ctx.lookup(DATA_SOURCE);
			return ds;
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}	
	}
    
    //获取连接
    public static Connection getConnection(){
		Context ctx;
		try {
			ctx = new InitialContext();
			DataSource ds = (DataSource) ctx.lookup(DATA_SOURCE);
			return ds.getConnection();
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}	
	}
}

更新日期20150902


版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    DBUtil工具类jar包

    DBUtil工具类是Java开发中常见的一种数据库操作辅助类,它的主要目的是为了简化数据库的CRUD(创建、读取、更新、删除)操作,提高开发效率。DBUtil通常集成了连接池技术,如Druid、C3P0或HikariCP等,以优化数据库...

    对Apache的DbUtil实现<类自动装载>

    DbUtil 对 JDBC 进行简单的...但 DbUtil 对类的自动装载没有进行较好的封装 本demo实现了数据库中字段若为下划线分隔,而对应的实体类中是以驼峰式命名的情况进行自动装载 利用 resultSet 的元数据和 JAVA 的暴力反射

    韩顺平SqlHelper,DBUtil工具类

    韩顺平SqlHelper和DBUtil工具类是为了解决这一问题而设计的,它们提供了一种方便的方式来处理SQL Server数据库。这两个工具类是非静态的,这意味着它们可以被实例化并复用,从而避免了静态类可能带来的线程安全问题...

    dbutil工具类使用demo

    在这个“dbutil工具类使用demo”中,我们将探讨如何利用dbutil(可能是Apache Commons DbUtils库)和Maven Druid数据源来高效、安全地执行数据库交互。DbUtils是一个小型且实用的库,它简化了JDBC代码,提供了基本的...

    DBUtil(ASP。NET数据库连接工具类)

    DBUtil 是一个在ASP.NET开发环境中常用的数据库连接工具类,它的设计目的是为了简化数据库操作,减少程序员编写重复的连接和断开数据库的代码,从而提高开发效率和代码的可维护性。通过使用DBUtil,开发者可以快速地...

    DBUtil工具类

    2. 谨慎处理事务,DBUtil工具类可能不包含事务管理功能,需要在上层代码中控制事务边界。 3. 注意资源释放,即使DBUtil会自动管理连接,但仍然建议在完成操作后调用相应方法关闭结果集、Statement和Connection。 4. ...

    dbUtil使用 用Apache Commons DBUtil

    它通过提供一系列实用工具方法来帮助开发者更方便地处理 SQL 查询结果,并减少样板代码的数量。 #### 二、核心组件介绍 - **QueryRunner**: 用于执行 SQL 查询的核心类。 - **BeanHandler**: 处理查询结果并转换为...

    对apache的dbutil的改进版

    Apache DBUtils是一个轻量级的Java数据库访问工具包,它基于ApacheJakarta项目,主要提供了一种简单且有效的处理数据库连接的方式。这个“对apache的dbutil的改进版”是针对原始DBUtils进行了一些优化和扩展,以满足...

    Apache DbUtils Demo示例

    Apache DbUtils是一个由Apache软件基金会开发的开源Java库,它主要设计用于简化JDBC(Java Database Connectivity)操作。DbUtils库提供了一套实用工具方法,能够帮助开发者更高效、更安全地执行数据库操作,避免了...

    DBUtil.java类

    DBUtil的类,在WEB开发当中有许多项目都需要用它,可以不用重复写,这样很方便

    DBUtil工具类,java,mysql

    写好sql语句,调用该工具类内的方法,即可实现增删改查mysql数据库的操作。带有详细解释

    官方DBUtil的jar文件已经文档

    Apache最新的DButil工具类已经文档

    DBUtil.java

    SQLServer数据库工具类(DBUtil.java)JDBC连接数据库

    Apache DBUtils

    Apache DBCP,工具亲测有效,=================================================================================

    java个人开发工具类

    - 数据库操作工具类:如DBUtil,封装JDBC连接、SQL执行、结果集处理等,简化数据库操作。 - JSON解析工具类:如JsonUtil,提供JSON字符串与Java对象间的转换,如Gson或Jackson库的封装。 - 线程工具类:如...

    mysql工具类 jdbc操作mysql java操作mysql mysql驱动

    MySQL工具类是Java开发中常用的一种抽象,它封装了对MySQL数据库进行操作的基本方法,使得开发者无需关注底层的SQL执行细节,而是通过调用预定义的函数就能完成数据的增删改查等任务。本篇将详细介绍这个工具类以及...

    apache中DBUtil学习共28页.pdf.zip

    这个库是基于Java的,提供了一套实用工具类,使得开发者在处理JDBC(Java Database Connectivity)时可以更加方便和高效。DBUtils的核心理念是提供一个简单、安全的方式来执行数据库操作,避免了常见的错误和资源...

    Dbutil使用jar包

    Dbutil,全称为Apache Commons DbUtils,是一款由Apache软件基金会开发的开源Java工具包,它为JDBC(Java Database Connectivity)提供了一层简单的封装,旨在让数据库操作变得更加便捷且不易出错。DbUtil的设计目标...

    JavaWeb相关工具类

    这个名为"JavaWeb相关工具类"的压缩包很可能包含了一些常用的、预封装好的Java类,这些类集成了各种常见的功能,使得在处理Web相关任务时更加高效。下面,我们将深入探讨JavaWeb工具类的一些核心知识点。 1. **字符...

Global site tag (gtag.js) - Google Analytics