`
阿杜杜不是阿木木
  • 浏览: 20348 次
  • 性别: 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


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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics