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

 

 

 

猜你喜欢

转载自www.cnblogs.com/jeffery336699/p/9299033.html