首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

DbUtils的运用

2013-02-15 
DbUtils的使用DbUtils的使用今天在看一段源码的时候,看到了可以使用DbUtils来操作Jdbc 大致研究了DbUtils

DbUtils的使用
DbUtils的使用

今天在看一段源码的时候,看到了可以使用DbUtils来操作Jdbc

大致研究了DbUtils ,它对Jdbc的操作进行了二次封装,这样我们对数据库的操作就更加方便了,有时间的话大家一定要研究下

http://cuics-100.iteye.com/blog/841207
这篇文章解读了DbUtils的源码 ,其实源码并不是太复杂,大家可以把源码包下载下来看看

http://baike.baidu.com/view/4877026.htm
百度百科

http://commons.apache.org/dbutils/
DbUtils官网


研究了一段 使用 org.apache.commons.dbutils.handlers的代码

package dbutils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.commons.dbutils.DbUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.ResultSetHandler;import org.apache.commons.dbutils.handlers.*;public class HandlersExample{    public static void main(String[] args)    {        Connection conn = null;        String url = "jdbc:sybase:Tds:10.47.181.179:4100?language=us_english";        String jdbcDriver = "com.sybase.jdbc3.jdbc.SybDriver";        String user = "sa";        String password = "";        DbUtils.loadDriver(jdbcDriver);        try        {            conn = DriverManager.getConnection(url, user, password);            QueryRunner qr = new QueryRunner();            // 插入一条数据            qr.update(conn, "insert into zxinweb..guestbook(id,name) values (5,'name5')");            // 采用ArrayHandler方式查询单条记录            System.out.println("....ArrayHandler....");            Object[] r1 = qr.query(conn, "select id,name  from zxinweb..guestbook where id =5", new ArrayHandler());            for (int i = 0; i < r1.length; i++)            {                System.out.print(r1[i] + " ");            }            System.out.println("");            // 采用ArrayListHandler方式查询 多条记录            System.out.println("....ArrayListHandler....");            List r2 = qr.query(conn, "select id,name  from zxinweb..guestbook", new ArrayListHandler());            for (int i = 0; i < r2.size(); i++)            {                Object[] o = (Object[]) r2.get(i);                for (int x = 0; x < o.length; x++)                {                    System.out.print(o[x] + " ");                }                System.out.println(" ");            }            // 采用BeanHandler方式查询 单条记录            System.out.println("....BeanHandler....");            Guestbook r3 = (Guestbook) qr.query(conn, "select id,name  from zxinweb..guestbook", new BeanHandler(                    Guestbook.class));            System.out.println(r3);            // 采用BeanListHandler方式查询            System.out.println("....BeanListHandler....");            List<Guestbook> r4 = (List) qr.query(conn, "select id,name  from zxinweb..guestbook", new BeanListHandler(                    Guestbook.class));            for (int i = 0; i < r4.size(); i++)            {                Guestbook gb = r4.get(i);                System.out.println(gb);            }            // 采用BeanMapHandler方式查询 查询多条            System.out.println("....BeanMapHandler....");            ResultSetHandler<Map<Integer, Guestbook>> h5 = new BeanMapHandler(Guestbook.class, "id");            Map<Integer, Guestbook> r5 = qr.query(conn, "select id,name from zxinweb..guestbook", h5);            Guestbook g5 = r5.get(1); // jane's id is 1            Iterator<Entry<Integer, Guestbook>> it5 = r5.entrySet().iterator();            while (it5.hasNext())            {                System.out.println(it5.next());            }            // 采用ColumnListHandler方式查询 获取单个字段多条记录            System.out.println("....ColumnListHandler....");            List lName = (List) qr.query(conn, "select id,name from zxinweb..guestbook", new ColumnListHandler("name"));            for (int i = 0; i < lName.size(); i++)            {                String name = (String) lName.get(i);                System.out.println(name);            }            // 采用KeyedHandler方式查询 单个字段多条            System.out.println("....KeyedHandler....");            ResultSetHandler h7 = new KeyedHandler("id");            Map map7 = (Map) qr.query(conn, "select id, name  from zxinweb..guestbook", h7);            Iterator<Entry<Integer, Map<String, String>>> it7 = map7.entrySet().iterator();            while (it7.hasNext())            {                Entry<Integer, Map<String, String>> entry = it7.next();                System.out.println(entry.getKey() + " " + entry.getValue().get("name"));            }            // 采用MapHandler方式查询 单条记录            System.out.println("....MapHandler....");            Map map8 = (Map) qr.query(conn, "select id,name  from zxinweb..guestbook where id =5 ", new MapHandler());            if (map8 != null)            {                System.out.println(map8.get("name"));            }            // 采用MapListHandler方式查询            System.out.println("....MapListHandler....");            List results2 = (List) qr.query(conn, "select id,name  from zxinweb..guestbook", new MapListHandler());            for (int i = 0; i < results2.size(); i++)            {                Map gb = (Map) results2.get(i);                System.out.println(gb.get("id") + " " + gb.get("name"));            }            // 采用ScalarHandler方式查询            System.out.println("....ScalarHandler....");            String name = (String) qr.query(conn, "select id,name  from zxinweb..guestbook where id =5", new ScalarHandler("name"));            System.out.println(name);            // 删除一条数据            qr.update(conn, "delete from  zxinweb..guestbook where id =5 ");        } catch (SQLException e)        {            e.printStackTrace();        } finally        {            DbUtils.closeQuietly(conn);        }    }}



结果

....ArrayHandler....5 name5 ....ArrayListHandler....1 name1  2 name2  5 name5  ....BeanHandler....dbutils.Guestbook:[  id:1  name:name1]....BeanListHandler....dbutils.Guestbook:[  id:1  name:name1]dbutils.Guestbook:[  id:2  name:name2]dbutils.Guestbook:[  id:5  name:name5]....BeanMapHandler....1=dbutils.Guestbook:[  id:1  name:name1]2=dbutils.Guestbook:[  id:2  name:name2]5=dbutils.Guestbook:[  id:5  name:name5]....ColumnListHandler....name1name2name5....KeyedHandler....1 name12 name25 name5....MapHandler....name5....MapListHandler....1 name12 name25 name5....ScalarHandler....name5

热点排行