• DBUTils框架


     

    一、DBUTils介绍apache

          DBUtils是java编程中的数据库操作实用工具,小巧简单实用。

      DBUtils封装了对JDBC的操作,简化了JDBC操作。可以少写代码。

      1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作;

      2.对于数据表的写操作,也变得很简单(只需写sql语句)

      3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象

    二、DBUtils的三个核心对象

      > QueryRunner类

      > ResultSetHandler接口

      > DBUtils类

      QueryRunner

        QueryRunner中提供对sql语句操作的API.

          它主要有三个方法:

            query() 用于执行select

            update() 用于执行insert update delete

            batch() 批处理

      ResultSetHandler接口

        用于定义select操作后,怎样封装结果集.

      DbUtils

        它就是一个工具类,定义了关闭资源与事务处理的方法

    三、DBUtils快速入门

      > 导入jar包               

      > 创建QueryRunner对象

      > 使用query方法执行select语句

      > 使用ResultSetHandler封装结果集

      > 使用DbUtils类释放资源

      Dbutils快速入门实现步骤:

                  创建数据库及表

      第一步:导入jar包

      注意: c3p0与mysql驱动jar也要导入。

      //创建QueryRunner对象

      //使用query方法执行select语句

      //使用ResultSetHandler封装结果集

      //使用DbUtils类释放资源

    四、QueryRunner对象

      1.1 构造函数:

        > new QueryRunner(); 它的事务可以手动控制。

          也就是说此对象调用的方法(如:query、update、batrch)参数中要有Connection对象。

        > new QueryRunner(DataSource ds); 它的事务是自动控制的。一个sql一个事务。
                     此对象调用的方法(如:query、update、batrch)参数中无需Connection对象。

                     oracle的时候加boolean pmdKnownBroken参数

      1.2 方法

    <T> T

    query(String sql, ResultSetHandler<T> rsh, Object... params)

    <T> T

    query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)

     int

    update(String sql, Object... params)

    int

    update(Connection conn, String sql, Object... params)

     int[]

    batch(Connection conn, String sql, Object[][] params) 

     int[]

    batch(String sql, Object[][] params)

     

    五、ResultSetHandler接口

      实现的处理器

      //ArrayHandler:适合取1条记录。把该条记录的每列值封装到一个数组中Object[]

      //ArrayListHandler:适合取多条记录。把每条记录的每列值封装到一个数组中Object[],把数组封装到一个List中

      //ColumnListHandler:取某一列的数据。封装到List中。

      //KeyedHandler:取多条记录,每一条记录封装到一个Map中,再把这个Map封装到另外一个Map中,key为指定的字段值。

      //MapHandler:适合取1条记录。把当前记录的列名和列值放到一个Map中

      //MapListHandler:适合取多条记录。把每条记录封装到一个Map中,再把Map封装到List中

      //ScalarHandler:适合取单行单列数据

      //BeanHandler

      //BeanListHandler

     

     七、ThreadLocal

      模拟ThreadLocal的设计,让大家明白他的作用。

      public class ThreadLocal{

        private Map<Runnable,Object> container = new HashMap<Runnable,Object>();

        public void set(Object value){

          container.put(Thread.currentThread(),value);//用当前线程作为key

        }

        public Object get(){

          return container.get(Thread.currentThread());

        }

        public void remove(){

          container.remove(Thread.currentThread());

        }

      }

    总结:调用该类的get方法,永远返回当前线程放入的数据。线程局部变量。

     

     

  • 相关阅读:
    小程序模板template问题记录
    datepicker 组件 的坑
    js实现 throttle 和 debounce
    vuex简单使用
    webpack 打包图片 缺失问题
    invalid prop `current` of type `string` supplied to `pagination`, expected `
    HTML5自定义属性之data-*
    vue组件传值方式介绍
    解决github.com 打不开问题
    git密令使用
  • 原文地址:https://www.cnblogs.com/soficircle/p/6921360.html
Copyright © 2020-2023  润新知