需要三个导入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; } }
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来调用完成后返回前台数据集合,再在前台进行样式的拼接。