DBUtil数据库操作工具类
2017-09-15 15:36
288 查看
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.HashMap; import java.util.List; import java.util.Map; /** * 数据库操作帮助类 * @author wpj_service * */ public class DBUtil { private static Connection getConnection(){ Connection conn = null; try { //获取数据库链接,可以使用JDBC或者连接池 conn = C3P0ConnentionProvider.getConnection(); } catch (SQLException e) { LoggerUtil.insertLog("数据库连接出错"); // TODO Auto-generated catch block e.printStackTrace(); } return conn; } /** * 关闭所有连接 */ @SuppressWarnings("null") private static boolean closeAll(ResultSet rst,PreparedStatement pst, Connection conn) { // TODO 关闭所有连接 boolean flag = false; try { if(rst!=null){ rst.close(); } if(pst!=null||!pst.isClosed()){ pst.close(); } if(conn!=null||!conn.isClosed()){ conn.close(); flag = true; } } catch (SQLException e) { e.printStackTrace(); } return flag; } /** * 更新数据库操作 * @param sql * @return */ public static int update(String sql){ int i = 0 ; Connection conn = getConnection(); ResultSet rs = null; PreparedStatement pst = null; try { conn = C3P0ConnentionProvider.getConnection(); pst = conn.prepareStatement(sql); i = pst.executeUpdate(); } catch (SQLException e) { LoggerUtil.insertLogError("数据库连接错误"); // TODO Auto-generated catch block e.printStackTrace(); }finally{ LoggerUtil.insertLogError("更新数据库:"+i); closeAll(rs, pst, conn); } return i ; } /** * 查询数据 * @return */ public static List<Map<String,Object>> query(String sql){ List<Map<String,Object>> list = null; Connection conn = getConnection(); ResultSet rs = null; PreparedStatement pst = null; try { conn = C3P0ConnentionProvider.getConnection(); pst = conn.prepareStatement(sql); rs = pst.executeQuery(); list = getResultList(rs); } catch (SQLException e) { // TODO Auto-generated catch block LoggerUtil.insertLogError("数据库连接错误"); e.printStackTrace(); }finally{ LoggerUtil.insertLog("查询数据库"); closeAll(rs, pst, conn); } return list; } /* * 解析ResultSet 表列数据 */ private static Map<String,Object> getResultMap(ResultSet rs) throws SQLException{ Map<String, Object> rawMap = new HashMap<String, Object>(); ResultSetMetaData rsmd = rs.getMetaData(); // 表对象信息 int count = rsmd.getColumnCount(); // 列数 // 遍历之前需要调用 next()方法 for (int i = 1; i <= count; i++) { String key = rsmd.getColumnLabel(i); Object value = rs.getObject(key); rawMap.put(key, value); } return rawMap; } /* * 解析ResultSet 表数据 */ private static List<Map<String,Object>> getResultList(ResultSet rs) throws SQLException{ List<Map<String,Object>> rawList = new ArrayList<Map<String,Object>>(); while(rs.next()){ Map<String, Object> rawMap = getResultMap(rs); rawList.add(rawMap); } return rawList; } }
相关文章推荐
- 常用代码备忘录(封装 Apache Commons 的 DbUtils 实现的数据库操作工具类)-DBUtil.java
- jdbc数据库操作工具类--DBUtil
- 关于数据库连接操作的工具类DBUtil.java
- JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
- MySQL 数据库操作工具类, 方便数据库操作.
- 我的数据库操作工具类
- java操作数据库的工具类
- android中仿dbutil的sqlite操作工具类
- Java数据库的操作——DBUtils工具类结果集处理的方式有几种?
- Struts 数据库连接池与数据库操作工具类
- JAVA 自己写的JDBC数据库工具类,并作相关的测试DBUtil
- 【玩转SQLite系列】(七)打造轻量级ORM工具类SQLiteDbUtil操作数据库
- java数据库操作工具类
- 简单的数据库连接工具类DBUtil
- DBUtils工具类 —— 操作数据库工具类Apache
- DBUtil 数据库工具类
- Java 最简单的 数据库工具类 DbUtil
- 数据库操作工具类
- JDBC的简单封装,实现简单数据库操作工具类SQLHelper.
- 安卓中引入GreenDAO数据库框架,包括封装好的数据库操作工具类