zoukankan      html  css  js  c++  java
  • Dbutils

    Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。

    外文名 Commons DbUtils
    简介 操作数据库的组件
    特色 小巧简单实用
    用途 java编程

    目录
    1 简介
    2 特征

    简介

    补充一下,传统操作数据库的类指的是JDBC(java database connectivity:java数据库连接,java的数据库操作的基础API。)。

    特征

    DBUtils是java编程中的数据库操作实用工具,小巧简单实用,
    1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作;
    2.对于数据表的写操作,也变得很简单(只需写sql语句)
    3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。

    DBUtils包括3个包:

    org.apache.commons.dbutils
    org.apache.commons.dbutils.handlers
    org.apache.commons.dbutils.wrappers
    DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
    org.apache.commons.dbutils
    DbUtils 关闭链接等操作
    QueryRunner 进行查询的操作
    org.apache.commons.dbutils.handlers
    ArrayHandler :将ResultSet中第一行的数据转化成对象数组
    ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[]
    BeanHandler :将ResultSet中第一行的数据转化成类对象
    BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象
    ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象
    KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据
    MapHandler :将ResultSet中第一行的数据存成Map映射
    MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map
    ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
    org.apache.commons.dbutils.wrappers
    SqlNullCheckedResultSet :对ResultSet进行操作,改版里面的值
    StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()

    主要方法:

    DbUtils类:启动类
    ResultSetHandler接口:转换类型接口
    MapListHandler类:实现类,把记录转化成List
    BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象
    Query Runner类:执行SQL语句的类

    建立三个Java文件

    命名为 BeanListExample.java
    Guestbook.java
    MapListExample.java

    源码:

    BeanListExample.java

    Code

    import org.apache.commons.dbutils.DbUtils;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.List;
    public class BeanListExample {
    public static void main(String[] args) {
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/people";
    String jdbcDriver = "com.mysql.jdbc.Driver";
    String user = "root";
    String password = "hicc";
    DbUtils.loadDriver(jdbcDriver);
    try {
    conn = DriverManager.getConnection(url, user, password);
    QueryRunner qr = new QueryRunner();
    List results = (List) qr.query(conn, "select id,name from guestbook", new BeanListHandler(Guestbook.class));
    for (int i = 0; i < results.size(); i++) {
    Guestbook gb = (Guestbook) results.get(i);
    System.out.println("id:" + gb.getId() + ",name:" + gb.getName());
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    DbUtils.closeQuietly(conn);
    }
    }
    }

    Guestbook.java

    Code

    public class Guestbook {
    private Integer id;
    private String name;
    public Integer getId() {
    return id;
    }
    /**get,set方法*/
    }
    MapListExample.java
    Code
    import org.apache.commons.dbutils.DbUtils;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.MapListHandler;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Map;
    public class MapListExample {
    public static void main(String[] args) {
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/people";
    String jdbcDriver = "com.mysql.jdbc.Driver";
    String user = "root";
    String password = "hicc";
    DbUtils.loadDriver(jdbcDriver);
    try {
    conn = DriverManager.getConnection(url, user, password);
    QueryRunner qr = new QueryRunner();
    List results = (List) qr.query(conn, "select id,name from guestmessage", new MapListHandler());
    for (int i = 0; i < results.size(); i++) {
    Map map = (Map) results.get(i);
    System.out.println("id:" + map.get("id") + ",name:" + map.get("name"));
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    DbUtils.closeQuietly(conn);
    }
    }
    }
    使用组建好需要添加commons-dbutils-1.1.jar和mysql-connector-java-5.1.6-bin.jar两个jar包。
    配置完毕!!!

    //另一种方法
    //使用dbutils1.0版本

    import java.util.;
    import java.util.logging.
    ;
    import java.sql.;
    import org.apache.commons.dbutils.
    ;
    import org.apache.commons.dbutils.handlers.*;
    public class TestDBUnits {
    public static void main(String[]args) throws Exception {
    TestDBUnits test = new TestDBUnits();
    for(int i = 0 ; i < 1 ; i++) {
    test.testQuery1();
    test.testQuery2();
    test.testUpdate();
    }
    }
    public void testQuery1(){
    try {
    QueryRunner qr = new QueryRunner() ;
    ResultSetHandler rsh = new ArrayListHandler();
    String strsql = "select * from test1";
    ArrayList result = (ArrayList)qr.query(getConnection() ,strsql ,rsh);
    //System.out.print("");
    } catch(Exception ex) {
    ex.printStackTrace(System.out);
    }
    }
    public void testQuery2(){
    try {
    QueryRunner qr = new QueryRunner() ;
    ResultSetHandler rsh = new MapListHandler();
    String strsql = "select * from test1";
    ArrayList result = (ArrayList)qr.query(getConnection() ,strsql ,rsh);
    for(int i = 0 ; i < result.size() ; i++) {
    Map map = (Map)result.get(i);
    //System.out.println(map);
    }
    //System.out.print("");
    } catch(Exception ex) {
    ex.printStackTrace(System.out);
    }
    }
    public void testUpdate(){
    try {
    QueryRunner qr = new QueryRunner() ;
    ResultSetHandler rsh = new ArrayListHandler();
    String strsql = "insert test1(page ,writable ,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')";
    qr.update(getConnection() ,strsql);
    //System.out.print("");
    } catch(Exception ex) {
    ex.printStackTrace(System.out);
    }
    }
    private Connection getConnection() throws InstantiationException,
    IllegalAccessException, ClassNotFoundException, SQLException {
    String strDriver = "org.gjt.mm.mysql.Driver";
    String strUrl = "jdbc:mysql://localhost:3306/test";
    String strUser = "root";
    String strPass = "";
    Class.forName(strDriver).newInstance();
    return DriverManager.getConnection(strUrl, strUser, strPass);
    }
    }

  • 相关阅读:
    bootstrap fileinput 无法显示中文bug
    js防止回车(enter)键提交表单及javascript中event.keycode
    php 生成唯一随机码
    thinksns 分页数据
    详解PHP处理密码的几种方式
    windows7 在cmd中执行php脚本
    php 无限级分类 递归+sort排序 和 非递归
    CentOS 创建SVN 服务器,并且自动同步到WEB 目录
    微擎笔记
    laravel php框架 知识点及注意问题
  • 原文地址:https://www.cnblogs.com/cyy-13/p/5829561.html
Copyright © 2011-2022 走看看