-
需要三个导入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来调用完成后返回前台数据集合,再在前台进行样式的拼接。
相关推荐
在这个"简单JAVA写的mysql数据库帮助类与测试示例"中,我们有两个核心文件:`MySqlConn - 副本.java`和`TestMySqlConn - 副本.java`。 首先,让我们了解`MySqlConn - 副本.java`,这通常是一个数据库连接帮助类,它...
封装了常用的数据库访问的模式化操作,可以大大简化程序的复杂性,和提高代码的利用率!
总的来说,《Java数据库应用程序编程指南》的随书源码是一份宝贵的教育资源,它将理论知识与实践相结合,帮助读者掌握Java数据库编程的核心技能。无论你是Java新手还是经验丰富的开发者,都可以从中受益匪浅,提升...
一些高级的JAVA数据库小工具还提供了数据可视化功能,如图表、报表等,帮助用户更直观地理解数据。这对于数据分析和决策制定非常有用。 5. **备份与恢复** 数据库的安全性至关重要,因此,JAVA数据库小工具通常...
一个优秀的JDBC工具类或帮助类是为了简化数据库操作,提高代码的可读性和复用性而设计的。在给定的“jdbc 工具类、帮助类”主题中,我们可以探讨以下几个重要的知识点: 1. **连接管理**:在JDBC中,建立和关闭...
Java数据库连接(Java Database Connectivity,简称JDBC)是一套用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成。通过JDBC,开发者可以编写出能够与多种不同类型的数据库进行交互的应用程序,而...
Java数据库技术是Java开发中的重要组成部分,主要用于存储和管理数据。在Java中,与数据库交互主要依赖于Java Database Connectivity (JDBC) API。本资源包提供了详细的Java数据库技术讲解,包括PPT演示文稿、源代码...
"Java数据库操作封装类"的设计往往借鉴了如JDBC(Java Database Connectivity)、Hibernate、MyBatis等主流类库的思想。JDBC是Java中标准的数据库访问接口,它提供了与各种数据库通信的能力,但其API较为底层,使用...
本教程“Java数据库开发实例教案”提供了8个实战案例,涵盖了Java与数据库交互的各个方面,旨在帮助学习者深入理解并熟练掌握相关技术。 首先,Java通过JDBC(Java Database Connectivity)API与各种类型的数据库...
本篇文章将深入解析一个自定义的JAVA数据库连接池类,帮助开发者更好地理解和运用这一关键技术。 首先,连接池的基本思想是预先创建一定数量的数据库连接,并存储在一个集合(如Vector)中,供应用程序按需获取和...
这份"java数据库技术详解ppt"涵盖了与Java编程语言和数据库交互的核心概念,旨在帮助开发者深入理解这一领域的关键知识点。 首先,Java数据库连接(JDBC)是Java与数据库交互的基础。JDBC提供了一组API,允许程序员...
相信本书无论对于Java数据库的初学者,还是Java数据库的入门者以及Java数据库专家,既能有助于增长对Java知识的了解,又能成为对编程者有帮助的工具书和参考书。... 本人特传此经典,希望能帮助需要的朋友,关于有...
通过了解Java数据库编程的原理、技术以及实际应用案例,可以帮助开发人员更加深入地掌握这项技术,并在实际工作中更有效地运用它。随着技术的不断进步,Java数据库编程也在不断地演进和优化,为其在未来的应用提供了...
在“Java数据库开发案例精选”中,我们主要探讨的是如何使用Java编程语言与各种数据库进行交互,实现数据的存储、查询、更新和删除等操作。Java数据库开发是软件开发中的重要组成部分,尤其在构建Web应用、企业级...
在这个资料包中,"Java数据库操作代码精粹"可能包含了各种实用示例,帮助开发者理解和实践如何在Java应用中与数据库进行有效通信。 Java数据库操作主要依赖于JDBC(Java Database Connectivity),这是一个Java API...
《Java数据库编程宝典》是一本深入探讨Java与数据库交互技术的专业书籍,旨在帮助开发者熟练掌握在Java环境中进行高效、安全的数据库编程。本书涵盖了从基础到高级的多个层次的知识点,包括JDBC(Java Database ...
一、Java数据库连接(JDBC) 在Java中与Oracle数据库交互,首先需要了解Java Database Connectivity (JDBC) API。JDBC是Java提供的一组接口和类,用于连接Java应用程序与各种数据库,包括Oracle。要连接到Oracle...
本文将详细介绍如何在WebLogic环境下解决Java数据库连接泄漏问题,包括临时解决方案和长期监控机制。 #### 二、什么是数据库连接泄漏? 数据库连接泄漏是指应用程序在使用完数据库连接后没有正确地关闭这些连接,...