国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

DBUtils工具

2019-11-14 22:12:55
字體:
來源:轉載
供稿:網友
DBUtils工具DBUtils工具簡介

是Apache旗下的產品。是對jdbc的簡單封裝。提供出通用的jdbc操作方法。簡化開發者使用jdbc的成本。

常用的API說明

|-QueryRunner類:主要進行jdbc的增刪改查操作。

|-update():用于更新

|-query():用于查詢

|-ResultSetHandler接口:主要用于在查詢操作中,封裝結果集。ResultSet->對象

|-ArrayHandler類:把結果集的第一行記錄封裝成數組

|-ArrayListHandler類:把結果集的每一行封裝到對象數組中,每個對象數組放入List集合中。

|-BeanHandler類:把結果集封裝到一個javabean對象中

|-BeanListHandler類:把結果集的每一行數據封裝到一個javabean對象中,然后把javabean對象放入List集合中。

以上兩個方法使用頻率最高!!!

|-ScalarHandler類: 把結果集的第一行第一列的數據返回。通用用于聚合查詢(例如,count,max,min,avg)

介紹完它的核心API,下面來演示一下它的使用步驟。

DBUtils的使用步驟

步驟一:導包

導入commons-dbutils-1.2.jar包

步驟二:代碼中使用它

利用DBUtils進行增刪改工作

    @Test    public void test1()    {        //1.創建QueryRunner         //方式一:用一個DataSoutce對象作參數        ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句            qr.update("insert into students(id,name) values(?,?)",new Object[] {8,"JAX"});        } catch (SQLException e) {            e.PRintStackTrace();            throw new RuntimeException(e);        }        }

下面來看看方式二:

    @Test    public void test2()    {        //1.創建QueryRunner         //方式二:用無參的方法        ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner();        Connection conn = null;                    try {            conn = pool.getConnection();                    //用指定的conn執行指定的SQL語句            qr.update(conn,"insert into students(id,name) values(85,'JinX')");        } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }finally{            if(conn!=null)            {                try {                    conn.close();//放回連接池                } catch (SQLException e) {                    e.printStackTrace();                }            }        }    }
利用DBUtils進行查詢工作

DBUtils最大的用處還是在于查詢后把結果封裝~下面來體現一下把

1.ArrayHandler:把查詢結果的第一行返回一個對象數組。

    @Test    public void test3()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用ArrayHandler            Object[] obj = (Object[]) qr.query("select * from students",new ArrayHandler());                        for(int i = 0; i<obj.length;i++)            {                System.out.println(obj[i]);            }                } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }

2.ArrayListHandler:把查詢的結果的每一行封裝到一個數組中,然后把這些數組放到一個集合中返回。

@Test    public void test4()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用ArrayListHandler()            List<Object[]> list = (List<Object[]>)qr.query("select * from students", new ArrayListHandler());                        for(Object[] obj : list)            {                for(int i=0;i<obj.length;i++)                {                    System.out.println(obj[i] + "/t");                }            }                            } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }

3.BeanHandler:把結果集的第一行記錄返回一個javaBean對象

前提:結果集的字段名和javaBean的屬性名保持一致。

    @Test    public void test5()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用BeanHandler            Students s = (Students) qr.query("select * from students",new BeanHandler(Students.class));            System.out.println(s);                    } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }

4.BeanListHandler:把結果集的每一行封裝成一個javaBean對象,然后把這些對象放入到一個List集合中返回。

前提:結果集的字段名和javaBean的屬性名保持一致。

    @Test    public void test6()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用BeanListHandler            List<Students> list = (List<Students>)qr.query("select * from students",new BeanListHandler(Students.class));                        for(Students s : list)            {                System.out.println(s);            }                    } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }

5.scalarHandler:返回結果集第一行第一列的字段值。

常常被用于聚合查詢。

    @Test    public void test7()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用ArrayHandler            Object obj = (Object) qr.query("select count(*) from students",new ScalarHandler());                        System.out.println(obj);                    } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }
6.自定義字段名轉換handler

如果字段名和javaBean屬性名,不一致,我們就要編寫自己的一個handler,來實現封裝時的字段名對應,下面就來演示一下如何編寫自己的handler

    @Test    public void test8()    {        //1.創建QueryRunner         ComboPooledDataSource pool = new ComboPooledDataSource();        QueryRunner qr = new QueryRunner(pool);                try {            //執行SQL語句,使用BeanHandler            Students2 s = (Students2) qr.query("select * from students",new MyStudentsHandler());            System.out.println(s);                    } catch (SQLException e) {            e.printStackTrace();            throw new RuntimeException(e);        }        }    //手動封裝結果集    class MyStudentsHandler implements ResultSetHandler    {        @Override        public Object handle(ResultSet rs) throws SQLException {            while(rs.next())            {                //創建javaBean對象                Students2 s = new Students2();                s.setId(rs.getInt("sid"));//                s.setName(rs.getString("sname"));                return s;            }            return null;        }            }

上述就是DBUtils這個工具的一些用法,主要是用來封裝結果集的對象~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绵竹市| 九江市| 昭平县| 五莲县| 石门县| 东乡族自治县| 遂川县| 肇源县| 和顺县| 东至县| 平顺县| 塔河县| 祁东县| 石阡县| 沾益县| 宕昌县| 资兴市| 金乡县| 余庆县| 七台河市| 高雄市| 桐梓县| 固安县| 乌兰察布市| 宣武区| 方山县| 萍乡市| 陕西省| 浪卡子县| 辛集市| 卫辉市| 招远市| 花垣县| 太仆寺旗| 旬邑县| 茶陵县| 察雅县| 淮安市| 马关县| 金阳县| 衡南县|