gaozhuang211 xiexie Dbutils 详解( gaozhuang)

    common dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成list。


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类型的对象

qrery runner类:执行sql语句的类



建立三个java文件

命名为beanlistexample.java

guestbook.java

maplistexample.java


源码:

beanlistexample.java



code
package com.sy;

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
package com.sy;

public class guestbook {
    private integer id;
    private string name;

    public integer getid() {
        return id;
    }

    public void setid(integer id) {
        this.id = id;
    }

    public string getname() {
        return name;
    }

    public void setname(string name) {
        this.name = name;
    }
}


maplistexample.java



code
package com.sy;

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

猜你喜欢

转载自jiava9900.iteye.com/blog/1150171