zoukankan      html  css  js  c++  java
  • Jdbc和工具类

    1.DriverManager的jdbc操作:

     2.简单封装Jdbc工具类:

     (1)采用静态代码块

     

    (2).src文件夹下面:

     

     (3).注意:

     

     3.自定义连接池:

     (1).概念

     所有的连接池必须实现一个接口 javax.sql.DataSource接口

     (2).

     

     4.装饰者模式

      <1>使用步骤:

    1).装饰者和被装饰者实现同一个接口或者继承同一个类
    2).装饰者中要有被装饰者的引用
    3).对需要增强的方法进行加强
    4).对不需要加强的方法调用原来方法

     

     <2>

     

     <3>

     

     5.Dbcp连接池方式:

      (1) 准备工作:

     导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar)

     (2)

      (3)

     6.C3P0连接池

     (1).准备工作

     导入jar包(c3p0-0.9.1.2.jar)

     (2)

     

     (3)

     

     (4)

     

    7.dbutils工具类完成curd操作

     (1)概念

     导入jar包(commons-dbutils-1.4.jar)

     (2)

     

    (3)自制DataResourceUtils工具类,里面用的是c3p0框架

    public class DataResourceUtils {
        private static ComboPooledDataSource pooledDataSource=new ComboPooledDataSource();
        
        /**
         * 获得连接池
         * @return 连接池
          */
        public static DataSource getDataSource() {
            return pooledDataSource;
        }
        
        /**
         * 获得连接
         * @return 连接
         * @throws SQLException
         */
        public static Connection getConnectin() throws SQLException {
            return pooledDataSource.getConnection();
        }
        
        // 释放资源
            public static void closeResource(Connection connection, Statement statement, ResultSet resultSet) {
                closeResultSet(resultSet);
                closeStatement(statement);
                closeConnection(connection);
            }
            
            /**
             * 释放连接
             * @param connection 连接
             */
            public static void closeConnection(Connection connection) {
                if (connection!=null) {
                    try {
                        connection.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                    connection=null;
                }
            }
            
            
            /**
             * 释放语句执行者
             * @param statement 语句执行者
             */
            public static void closeStatement(Statement statement) {
                if (statement!=null) {
                    try {
                        statement.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                    statement=null;
                }
            }
            
            /**
             * 释放结果集
             * @param resultSet 结果集
             */
            public static void closeResultSet(ResultSet resultSet) {
                if (resultSet!=null) {
                    try {
                        resultSet.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                    resultSet=null;
                }
            }
    }

     

     

     

  • 相关阅读:
    Enterprise Library 2.0 Hands On Lab 翻译(9):缓存应用程序块(一)
    Enterprise Library 2.0 Hands On Lab 翻译(5):日志应用程序块(二)
    提供多单词建议的自定义AutoCompleteExtender
    什么是 axios
    Consul是一个分布式高可用的系统
    全栈开发工程师
    XPath路径表达式
    9 个带你阅读源码的开源项目
    前端跨域解决方案
    [WCFDiscovery]让服务自动发送上/下线通知[原理篇]
  • 原文地址:https://www.cnblogs.com/jeffery336699/p/9299033.html
Copyright © 2011-2022 走看看