博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Java] 数据库连接管理类
阅读量:5925 次
发布时间:2019-06-19

本文共 3800 字,大约阅读时间需要 12 分钟。

package com.wdcloud.monitoring.common;    /**     * @Description: TODO     * @date: 2015��11��19�� ����10:23:16     * @version: 1.0     * @update [����YYYY-MM-DD] [���������][�������]     */import java.sql.Connection;import java.sql.DriverManager;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 com.mysql.jdbc.Statement;/** * 连接数据库的工具类,被定义成不可继承且是私有访问 */public final class DBUtils {    private static String url = "jdbc:mysql://localhost:3306/test";    private static String user = "root";    private static String psw = "root";        private static  Connection conn;    private static Statement statement;        static {        try {            Class.forName("com.mysql.jdbc.Driver");        } catch (ClassNotFoundException e) {            e.printStackTrace();            throw new RuntimeException(e);        }    }        private DBUtils() {            }        /**     * 获取数据库的连接     * @return conn     */    public static Connection getConnection() {        if(null == conn) {            try {                conn = DriverManager.getConnection(url, user, psw);            } catch (SQLException e) {                e.printStackTrace();                throw new RuntimeException(e);            }        }        return conn;    }        public static Statement getStatement(){        if(null == statement){            try{                statement = (Statement) DBUtils.getConnection().createStatement();            }catch (SQLException e) {                e.printStackTrace();                throw new RuntimeException(e);            }        }        return statement;    }        /**     * 释放资源     * @param conn     * @param pstmt     * @param rs     */    public static void closeResources(Connection conn,PreparedStatement pstmt,ResultSet rs) {        if(null != rs) {            try {                rs.close();            } catch (SQLException e) {                e.printStackTrace();                throw new RuntimeException(e);            } finally {                if(null != pstmt) {                    try {                        pstmt.close();                    } catch (SQLException e) {                        e.printStackTrace();                        throw new RuntimeException(e);                    } finally {                        if(null != conn) {                            try {                                conn.close();                            } catch (SQLException e) {                                e.printStackTrace();                                throw new RuntimeException(e);                            }                        }                    }                }            }        }    }        /**     *          * @Description: TODO 将ResultSet转成list         * @date: 2015年11月19日 下午2:08:25         * @version: 1.0         * @param rs         * @return         * @throws java.sql.SQLException             * @List          * @update [日期YYYY-MM-DD] [更改人姓名][变更描述]     */    public static List resultSetToList(ResultSet rs) throws java.sql.SQLException {           if (rs == null)               return Collections.EMPTY_LIST;           ResultSetMetaData md = rs.getMetaData(); //得到结果集(rs)的结构信息,比如字段数、字段名等           int columnCount = md.getColumnCount(); //返回此 ResultSet 对象中的列数           List list = new ArrayList();           Map rowData = new HashMap();           while (rs.next()) {            rowData = new HashMap(columnCount);            for (int i = 1; i <= columnCount; i++) {                    rowData.put(md.getColumnName(i), rs.getObject(i));            }            list.add(rowData);           }           return list;   }    }

 

转载地址:http://srxvx.baihongyu.com/

你可能感兴趣的文章
AOP集成log4j日志
查看>>
浏览器兼容性工具 Spoon Browser Sandbox
查看>>
[转]用Ant实现Java项目的自动构建和部署
查看>>
5.4.4 表
查看>>
Codeforces 817F - MEX Queries
查看>>
软件需求规格说明书
查看>>
纯CSS实现展开列表
查看>>
算法基础-打开算法之门 (Thomas H.Corme 著)
查看>>
jQuery+bootstrap实现美化警告/确认/提示对话框插件
查看>>
js实现table内 某列的内容进行即时筛选
查看>>
JAVA特性-跨平台/面向对象
查看>>
利用Win10计划任务 + 弹窗,提醒你自己
查看>>
《php和mysql web开发》读书笔记
查看>>
第二章 生成、打包、部署和管理应用程序及类型
查看>>
Generate Parentheses
查看>>
括号配对问题2
查看>>
C#性能优化实践
查看>>
[HTML/CSS]display:none和visibility:hidden的区别
查看>>
Xcode导入第三方库
查看>>
css required,focus,valid和invalid介绍
查看>>