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;
                }
            }
    }

     

     

     

  • 相关阅读:
    什么是理想?
    leetcode 62. 不同路径-动态规划及优化,双100%
    使用双指针暴力解决力扣28题《实现 strStr()》
    使用双指针解决力扣27题《移除元素》
    SQL SERVER 数据库日志已满时清理日志的方法
    修改git提交的名字和邮箱
    React Native运行出现Could not find "iPhone X" simulator
    eosio 编译与部署
    恢复经常写博客的习惯
    MAC OS系统替换homebrew使用阿里云或中科大的镜像源
  • 原文地址:https://www.cnblogs.com/jeffery336699/p/9299033.html
Copyright © 2011-2022 走看看