java数据库帮助类

  1. 需要三个导入jar包,dbcp pool connection,这三个jar包都是apache公司的开源数据库连接帮助jar包,下载地址 http://commons.apache.org/ 

  2. 导入成功后添加三个帮助类,和一个配置文件,如下所示

  3. dbhelp.java
    package dzu.sc.util;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    
    import org.apache.commons.dbcp.BasicDataSource;
    
    /**
     * 此类不供人员直接调用
     * 数据库连接工具类
     * */
    public class DBHelp {
    
    	private static BasicDataSource ds = new BasicDataSource();
    	static {
    		Properties properties = new Properties();
    		try {
    			properties.load(DBHelp.class.getClassLoader().getResourceAsStream(
    					"dbconfig.properties"));
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    		String driver = properties.getProperty("driver");
    		String url = properties.getProperty("url");
    		String username = properties.getProperty("username");
    		String password = properties.getProperty("password");
    		String characterEncoding=properties.getProperty("characterEncoding");
    		int InitialSize = Integer.parseInt(properties
    				.getProperty("InitialSize"));
    		int MaxActive = Integer.parseInt(properties.getProperty("MaxActive"));
    		long MaxWait = Long.parseLong(properties.getProperty("MaxWait"));
    		int MinIdle = Integer.parseInt(properties.getProperty("MinIdle"));
    		
    		ds.setDriverClassName(driver);
    		ds.setUrl(url);
    		ds.setUsername(username);
    		ds.setPassword(password);
    		ds.setInitialSize(InitialSize);
    		ds.setMaxWait(MaxWait);
    		ds.setMaxActive(MaxActive);
    		ds.setMinIdle(MinIdle);
    		//设置连接编码方式
    		ds.setConnectionProperties(characterEncoding);
    		//System.out.println("数据库初始化已完成.....");
    	}
    
    	/**
    	 * 获取数据库连接对象
    	 * 
    	 * @return
    	 */
    	private Connection getConnection() {
    		try {
    			Connection conn = ds.getConnection();
    			return conn;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 * 执行insert update delete语句
    	 * 
    	 * @param sql
    	 */
    	public int executeSQL(String sql, Object... args) {
    		int result=0;
    		Connection conn = null;
    		PreparedStatement stat = null;
    		try {
    			conn = getConnection();
    			stat = conn.prepareStatement(sql);
    			for (int i = 0; i < args.length; i++) {
    				stat.setObject(i + 1, args[i]);
    			}
    			System.out.println(stat.toString());
    			result=stat.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			close(stat, conn);
    		}
    		return result;
    	}
    
    	/**
    	 * 查询select
    	 * @throws SQLException 
    	 */
    	public List executeQuery(String sql, Object... args) {
    		List list=null;
    		ResultSet rs = null;
    		Connection conn = null;
    		PreparedStatement stat = null;
    		try {
    			conn = getConnection();
    			stat = conn.prepareStatement(sql);
    			for (int i = 0; i < args.length; i++) {
    				stat.setObject(i + 1, args[i]);
    			}
    			System.out.println(stat.toString());
    			rs = stat.executeQuery();
    			list=resultSetToList(rs);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			close(stat, conn);
    		}
    		return list;
    	}
    
    	/**
    	 * 释放连接
    	 * 
    	 * @param stat
    	 * @param conn
    	 */
    	private void close(PreparedStatement stat, Connection conn) {
    		close(null, stat, conn);
    	}
    
    	/**
    	 * 释放连接
    	 * 
    	 * @param rs
    	 * @param stat
    	 * @param conn
    	 */
    	private void close(ResultSet rs, PreparedStatement stat, Connection conn) {
    		try {
    			if (rs != null) {
    				rs.close();
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (stat != null) {
    					stat.close();
    				}
    
    			} catch (SQLException e) {
    				e.printStackTrace();
    			} finally {
    				try {
    					if (conn != null) {
    						conn.close();
    					}
    				} catch (SQLException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    
    	/**
    	 * 将resultset转化为List
    	 * */
    	private  List resultSetToList(ResultSet rs) throws java.sql.SQLException {   
            if (rs == null)   
                return Collections.EMPTY_LIST;   
            ResultSetMetaData md = rs.getMetaData(); 
            int columnCount = md.getColumnCount(); 
            List list = new ArrayList();   
            //将map放入集合中方便使用个别的查询
            Map rowData = new HashMap();   
            while (rs.next()) {   
             rowData = new HashMap(columnCount);
             //将集合放在map中
             for (int i = 1; i <= columnCount; i++) {   
                     rowData.put(md.getColumnName(i), rs.getObject(i));   
             }   
             list.add(rowData);   
            }  
            return list;   
    }
    }
DB.java
package dzu.sc.util;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * 此类供程序员直接调用
 * */
public class DB {
	private static DBHelp dbHelp = null;
	static {
		dbHelp = new DBHelp();
	}

	/**
	 * 缺省查询
	 * */
	public static List select(String tableName) {
		String sql = "select * from " + tableName;
		return dbHelp.executeQuery(sql);
	}

	/**
	 * 特定条件查询
	 * */
	public static List select(String tableName, Map<String, Object> where) {
		String sql = "";
		int i = 0;
		Object[] args = new Object[where.size()];
		sql = "select * from " + tableName;
		if (where.size() != 0) {
			sql += " where ";
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i != 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=?";
					args[i++] = value;

				}
			}

		}
		return dbHelp.executeQuery(sql, args);
	}

	/**
	 * 可以查询某个表的特定列
	 * */
	public static List select(String tableName, List<String> colums,
			Map<String, Object> where) {
		String sql = "select ";
		int i = 0;
		Object[] args = new Object[where.size()];
		// 拼接列选择
		for (int m = 0; m < colums.size(); m++) {
			sql += colums.get(m).toString() + ",";
		}
		// 去掉多余的逗号
		sql = sql.substring(0, sql.length() - 1);
		sql += " from " + tableName;
		if (where.size() != 0) {
			sql += " where ";
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=?";
					args[i++] = value;

				}
			}

		}
		return dbHelp.executeQuery(sql, args);
	}

	/**
	 * 
	 * 插入 支持and多条件工作
	 * */

	public static int insert(String tableName, Map<String, Object> map) {
		String sql = "insert into " + tableName;
		int i = 0;
		// 用于存放代替问号的真实数值
		Object[] args = new Object[map.size()];
		if (map.size() != 0) {
			// 拼接sql字符串
			Set keys = map.keySet();
			if (keys != null) {
				sql += "(";
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					String key = (String) iterator.next();
					Object value = map.get(key);
					sql += key + ",";
					args[i++] = value;
				}
				sql = sql.substring(0, sql.length() - 1) + ")";
				sql += " value(";
				for (int t = 0; t < map.size(); t++) {
					sql += "?,";
				}
				sql = sql.substring(0, sql.length() - 1) + ")";
			}

		}
		return dbHelp.executeSQL(sql, args);
	}

	/**
	 * 更新 map集合为更新的参数和值 where集合为约束条件
	 * */
	public static int update(String tableName, Map<String, Object> map,
			Map<String, Object> where) {
		String sql = "update " + tableName + " set ";
		int i = 0;
		// 用于存放代替问号的真实数值
		Object[] args = new Object[map.size() + where.size()];
		if (map.size() != 0) {
			// 拼接sql字符串
			Set keys1 = map.keySet();
			Set keys2 = where.keySet();
			if (keys1 != null) {
				Iterator iterator = keys1.iterator();
				// 接收所有的参数
				while (iterator.hasNext()) {
					String key1 = (String) iterator.next();
					Object value1 = map.get(key1);
					sql += key1 + "=?,";
					args[i++] = value1;
				}
				sql = sql.substring(0, sql.length() - 1) + " where ";
				// 接收约束条件
				if (keys2 != null) {
					Iterator iterator2 = keys2.iterator();
					// 接收所有的参数
					while (iterator2.hasNext()) {
						if (i > map.size()) {
							sql += " and ";
						}
						String key2 = (String) iterator2.next();
						Object value2 = where.get(key2);
						sql += key2 + "=?";
						args[i++] = value2;
					}
				}

			}

		}
		return dbHelp.executeSQL(sql, args);
	}

	/**
	 * 删除 map集合为约束条件, 支持and多条件工作
	 * */
	public static int delete(String tableName, Map<String, Object> map) {
		String sql = "delete from " + tableName + " where ";
		int i = 0;
		// 用于存放代替问号的真实数值
		Object[] args = new Object[map.size()];
		if (map.size() != 0) {
			// 拼接sql字符串
			Set keys = map.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				// 接收所有的参数
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					String key = (String) iterator.next();
					Object value = map.get(key);
					sql += key + "=? ";
					args[i++] = value;
				}
			}

		}
		return dbHelp.executeSQL(sql, args);
	}

	/**
	 * 获取某个表的记录条数
	 * */
	public static int Conunt(String tableName) {
		List list = dbHelp.executeQuery("select count(*) as allcount from "
				+ tableName);
		Map map = (Map) list.get(0);
		return Integer.parseInt(map.get("allcount").toString());
	}

	/**
	 * 两表联合查询(查询全部的信息)
	 * */
	public static List union2Select(String table1, String table2,
			Map<String, Object> where) {
		String sql = "select * from " + table1 + " as t1 inner join " + table2
				+ " as t2 on ";
		int i = 0;
		if (where.size() != 0) {
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=" + value;
					i++;
				}

			}
		}
		return dbHelp.executeQuery(sql);

	}

	/**
	 * 两表联合查询(查询指定列的信息)
	 * */
	public static List union2Select(String table1, String table2,
			List<String> colums, Map<String, Object> where) {
		String sql = "select ";
		for (int i = 0; i < colums.size(); i++) {
			sql += colums.get(i).toString() + ",";
		}
		sql = sql.substring(0, sql.length() - 1);
		sql += " from " + table1 + " as t1 inner join " + table2 + " as t2 on ";
		int i = 0;
		if (where.size() != 0) {
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=" + value;
					i++;
				}

			}
		}
		return dbHelp.executeQuery(sql);

	}

	/**
	 * 三表联合(全部查询)
	 * */

	public static List union3Select(String table1, String table2,
			String table3, List<String> colums, Map<String, Object> where) {
		String sql = "select ";
		for (int i = 0; i < colums.size(); i++) {
			sql += colums.get(i).toString() + ",";
		}
		sql = sql.substring(0, sql.length() - 1);
		sql += " from " + table1 + "," + table2 + ", " + table3 + " where ";
		int i = 0;
		if (where.size() != 0) {
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=" + value;
					i++;
				}

			}
		}
		return dbHelp.executeQuery(sql);
	}

	/**
	 * 三表联合查询(全部查询)
	 * */
	public static List union3Select(String table1, String table2,
			String table3, Map<String, Object> where) {
		String sql = "select * from " + table1 + "," + table2 + ", " + table3
				+ " where ";
		int i = 0;
		if (where.size() != 0) {
			Set keys = where.keySet();
			if (keys != null) {
				Iterator iterator = keys.iterator();
				while (iterator.hasNext()) {
					if (i > 0) {
						sql += " and ";
					}
					Object key = iterator.next();
					Object value = where.get(key);
					sql += key + "=" + value;
					i++;
				}

			}
		}
		return dbHelp.executeQuery(sql);

	}

}
JsonUtil.java
package dzu.sc.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.sun.org.apache.bcel.internal.generic.NEW;


/**
 * json的操作类
 *
 */
public class JsonUtil {
	
/**
 * 传过list来将list里面的map取出来进行再加工生成json格式字符串
 * */
public static String ListToJson (List list ) {
	List newList =new ArrayList();
	int  listsize=list.size();
	Map oldMap = null; 
	Map newMap=null;
	for(int i=0;i<listsize;i++){
		oldMap = (Map)list.get(i);
		newMap=new HashMap();
        //将集合放在map中
		Set set=oldMap.keySet();
		Iterator iterator=set.iterator();
       while(iterator.hasNext()) {
        	Object key=iterator.next();
        	Object value=oldMap.get(key);
        	newMap.put("\""+key+"\"","\""+value+"\"");   
        }   
       newList.add(newMap);   
	}
	
	String str=newList.toString();
	str=str.replace('=', ':');
	return str;
}
}

说明:DB类为程序员直接调用的类,里面封装了对数据库的增删改查等操作,参数需要1.表名;2.列名;3.where条件

其中表名为字符串格式,列名用list来包装,条件需要放到一个map集合中,函数返回list集合,返回的list集合中封装了很

多map,方便单独查询每一个的值,jsonutil帮助类能够将返回的list集合直接转换为json格式发送到前台,程序员只要再

写一个单独的severlet来调用完成后返回前台数据集合,再在前台进行样式的拼接。

转载于:https://my.oschina.net/zhangjie9142/blog/214528

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值