-
需要三个导入jar包,dbcp pool connection,这三个jar包都是apache公司的开源数据库连接帮助jar包,下载地址 http://commons.apache.org/
-
导入成功后添加三个帮助类,和一个配置文件,如下所示
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; } }
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来调用完成后返回前台数据集合,再在前台进行样式的拼接。