zoukankan      html  css  js  c++  java
  • DBUtils

    DBUtils用于简化dao层的JDBC操作。

    QueryRunner对象用于调用方法,实现对表的增删改(update方法)查(query方法)。
    ResultHandle方法,用于获得不同的查询结果,将结果封装到不同的对象中去。
    ===========================================================================================
    ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
    ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
    BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。
    BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
    ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
    ScalarHandler 它是用于单数据。例如select count(*) from 表操作。
    MapHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
    MapListHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
    ===============================================================================================
    BeanUtils.populate(对象,map),可以将map中相对应键的值赋给对象中。
    =============================================================================================
    连接池是用来管理connection的,可以重复利用connection,方便开发流程,避免重复创建和关闭connection。
    常用的连接池有DBCP和C3P0,两者的方法基本相同。
    DBCP连接池使用前要导入DBCP和pool两个JAR包,编写DBUtils,用getDataSource()的方法返回连接池对象。
    C3P0连接池使用前需要导入3个jar包,要在工程的src下编写配置文件:c3p0-config.xml.
    ===============================================================
    内容如下(转自网络):
    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    <!-- 这是默认配置信息 -->
    <default-config>
    <!-- 连接四大参数配置 -->
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb3</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="user">root</property>
    <property name="password">123</property>
    <!-- 池参数配置 -->
    <property name="acquireIncrement">3</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">2</property>
    <property name="maxPoolSize">10</property>
    </default-config>

    <!-- 专门为oracle提供的配置信息 -->
    <named-config name="oracle-config">
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="user">root</property>
    <property name="password">123</property>
    <property name="acquireIncrement">3</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">2</property>
    <property name="maxPoolSize">10</property>
    </named-config>

    </c3p0-config>
    ==========================================================================
    JDBCUtils的内容如下(转自网络):
    package cn.itcast.jdbc;

    import java.sql.Connection;
    import java.sql.SQLException;

    import javax.sql.DataSource;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class JdbcUtils {
    // 配置文件的默认配置!要求你必须给出c3p0-config.xml!!!
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();

    /**
    * 使用连接池返回一个连接对象
    * @return
    * @throws SQLException
    */
    public static Connection getConnection() throws SQLException {
    return dataSource.getConnection();
    }

    /**
    * 返回连接池对象!
    * @return
    */
    public static DataSource getDataSource() {
    return dataSource;
    }
    }
    ==========================================
    使用方法仍然是再QueryRunner()的传递参数中传入JDBCUtils用getDataSource()获得的连接池对象。

  • 相关阅读:
    HDFS常用命令总结
    mac 安装zmap
    使用scrapy-redis搭建分布式爬虫环境
    xpath选择兄弟节点、返回上一级和选择多个属性
    什么是套接字(Socket)
    socket编程——一个简单的例子
    python之 __getattr__、__getattr__、__getitem__、__setitem__ 使用
    如何快速转载文章
    如何让类也变成可以迭代的对象
    leecode 第二题 简单
  • 原文地址:https://www.cnblogs.com/zhangrui0328/p/9307182.html
Copyright © 2011-2022 走看看