在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > java視頻教程之ResultSetHandler常用結果集封裝分享

            java視頻教程之ResultSetHandler常用結果集封裝分享

            發(fā)布人:扣丁學堂2 時間:2021-04-22 來源:工程師 發(fā)布文章

            //ArrayHandler:適合取1條記錄。把該條記錄的每列值封裝到一個數組中Object[]

            //ArrayListHandler:適合取多條記錄。把每條記錄的每列值封裝到一個數組中Object[],把數組封裝到一個List中

            //ColumnListHandler:取某一列的數據。封裝到List中。

            //KeyedHandler:取多條記錄,每一條記錄封裝到一個Map中,再把這個Map封裝到另外一個Map中,key為指定的字段值。

            //MapHandler:適合取1條記錄。把當前記錄的列名和列值放到一個Map中

            //MapListHandler:適合取多條記錄。把每條記錄封裝到一個Map中,再把Map封裝到List

            //ScalarHandler:適合取單行單列數據

            BeanHandler:把每條記錄封裝成對象,適合取一條記錄

            BeanListHandler把每條記錄封裝成對象,把對象存儲到List集合中,適合取多條記錄

            接下來扣丁學堂小編針對Java在線學習之ResultSetHandler常用結果集封裝案例分析,完成針對結果集的封裝。

            案例代碼

            1.MySQL數據庫創(chuàng)建圖書信息表

            2.創(chuàng)建Book.javajavabean類-->略

            3.建立CSP0連接池-->略

            4.根據需求,使用指定的結果集獲取數據結果


            首先我們先介紹最常用的結果集:

              importjava.sql.ResultSet;
              importjava.sql.SQLException;
              importjava.util.ArrayList;
              importjava.util.List;
              importorg.apache.commons.dbutils.QueryRunner;
              importorg.apache.commons.dbutils.ResultSetHandler;
              importorg.apache.commons.dbutils.handlers.BeanHandler;
              importorg.apache.commons.dbutils.handlers.BeanListHandler;
              importorg.junit.Test;
              importcom.qf.bean.Book;
              importcom.qf.utils.C3P0Utils;
              publicclassDemo_Query{
              //1.BeanHandler把每條記錄封裝成對象適合取一條記錄
              @Test
              publicvoidtestQuery2(){
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              try{
              Bookb=
              qr.query("select*frombookwhereid=?",newBeanHandler<Book>(Book.class),1);
              System.out.println(b);
              }catch(SQLExceptione){
              //TODOAuto-generatedcatchblock
              e.printStackTrace();
              }
              }
              //2.BeanListHandler把每條記錄封裝成對象將對象存儲到List集合中
              @Test
              publicvoidtestQuery3(){
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              try{
              List<Book>list=
              qr.query("select*frombookwhereid=?orid=?",newBeanListHandler<Book>(Book.class),2,9);
              System.out.println(list);
              }catch(SQLExceptione){
              //TODOAuto-generatedcatchblock
              e.printStackTrace();
              }
              }
              //3.ArrayHandler適合取一條記錄把該記錄的每一列值存儲到一個數組中Object[]
              @Test
              publicvoidtestQuery3()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Object[]arr=qr.query("select*frombookwhereid=1",newArrayHandler());
              for(Objectobj:arr){
              System.out.println(obj);
              }
              }
              //4.ArrayListHandler適合取多條記錄把該記錄的每一列值存儲到一個數組中Object[]然后把數組封裝到集合中
              @Test
              publicvoidtestQuery4()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              List<Object[]>list=qr.query("select*frombook",newArrayListHandler());
              for(Object[]obj:list){
              for(Objecto:obj){
              System.out.print(o+",");
              }
              System.out.println();
              }
              }
              //5.ColumnListHandler獲取某一列的數據封裝到List集合中
              @Test
              publicvoidtestQuery5()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              List<Object>list=qr.query("select*frombook",newColumnListHandler(2));//可以根據列號從1開始/列名
              for(Objectobj:list){
              System.out.println(obj);
              }
              }
              //6.MapHandler適合取一條記錄把當前記錄的列名和列值放到一個Map中
              @Test
              publicvoidtestQuery6()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Map<String,Object>map=qr.query("select*frombookwhereid=1",newMapHandler());
              for(Map.Entry<String,Object>entry:map.entrySet()){
              System.out.println(entry.getKey()+"::"+entry.getValue());
              }
              }
              //7.KeyedHandler取多條記錄
              //每條記錄封裝到Map中再把Map封裝到另一個Map中
              //Map<key,Map<key,value>>
              //內Map:key字段名value:字段值
              //外Map:key指定字段的值value:內Map
              //key為指定的字段值
              @Test
              publicvoidtestQuery7()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Map<Object,Map<String,Object>>map=qr.query("select*frombook",newKeyedHandler("id"));
              for(Map.Entry<Object,Map<String,Object>>entry:map.entrySet()){
              System.out.println(entry.getKey());
              for(Map.Entry<String,Object>e:entry.getValue().entrySet()){
              System.out.println(e.getKey()+";;;;"+e.getValue());
              }
              System.out.println("-------------");
              }
              }
              //8.MapListHandler適合取多條記錄把當前記錄封裝到Map中再把Map封裝到List中
              @Test
              publicvoidtestQuery8()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              List<Map<String,Object>>list=qr.query("select*frombook",newMapListHandler());
              for(Map<String,Object>map:list){
              for(Stringkey:map.keySet()){
              System.out.println(key+";;;;"+map.get(key));
              }
              System.out.println("--------------");
              }
              }
              //9.ScalarHandler適合取單行單列數據
              @Test
              publicvoidtestQuery9()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Objectobj=qr.query("selectcount(*)frombook",newScalarHandler());
              System.out.println(obj);
              }
              }
              以上代碼是針對查詢,給出的對應操作。當然,我們實際工作中不只有查詢,還會涉及到一些增刪改以及批量處理的功能。這時候我們就要使用QueryRunner類中的另外兩個方法來完成了。他們分別是:
              update()用于執(zhí)行insertupdatedelete
              batch()批處理可執(zhí)行多條語句批量
              QueryRunnerupdate()方法的使用案例代碼
              packagecom.qf.dbutils;
              importjava.sql.SQLException;
              importorg.apache.commons.dbutils.QueryRunner;
              importorg.junit.Test;
              importcom.qf.utils.C3P0Utils;
              //update()
              publicclassDemo_Update{
              @Test
              publicvoidtestInsert01()throwsSQLException{
              //1.獲取QueryRunner對象
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Stringsql="insertintobook(name,price,num)values('html',10,12)";
              qr.update(sql);
              }
              @Test
              publicvoidtestInsert02()throwsSQLException{
              //1.獲取QueryRunner對象
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Stringsql="insertintobook(name,price,num)values(?,?,?)";
              qr.update(sql,"photoshop",23,6);
              }
              @Test
              publicvoidtestUpdate(){
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Stringsql="updatebooksetprice=?whereid=1";
              try{
              qr.update(sql,80);
              }catch(SQLExceptione){
              //TODOAuto-generatedcatchblock
              e.printStackTrace();
              }
              }
              @Test
              publicvoidtestDelete()throwsSQLException{
              //1.獲取QueryRunner對象
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Stringsql="deletefrombookwhereid=13";
              qr.update(sql);
              }
              @Test
              publicvoidtestDelete2()throwsSQLException{
              //1.獲取QueryRunner對象
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Stringsql="deletefrombookwherenamelike?";
              qr.update(sql,"%java%");
              }
              }
              QueryRunnerbatch()方法的使用案例代碼
              packagecom.qf.dbutils;
              importjava.sql.SQLException;
              importjava.util.Arrays;
              importorg.apache.commons.dbutils.QueryRunner;
              importorg.junit.Test;
              importcom.qf.utils.C3P0Utils;
              publicclassDemo_Batch{
              /*
              *batch()方法是批量處理
              *所需要的參數包括一個二維數組
              *Object[][]params=newObject[5][];高維的數5決定是執(zhí)行sql語句的次數
              *低維數組的元素就是給sql語句?賦值的
              **/
              @Test
              publicvoidtestBatchInsert()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              //batch方法第二個參數是一個二維數組所以我們先創(chuàng)建一個二維數組
              Object[][]params=newObject[5][];
              //給二維數組中每一個一維數組的元素進行賦值
              for(inti=0;i<params.length;i++){
              params[i]=newObject[]{"html",22,39};
              }
              int[]arr=qr.batch("insertintobook(name,price,num)values(?,?,?)",params);
              System.out.println(Arrays.toString(arr));
              }
              @Test
              publicvoidtestBatchDelete()throwsSQLException{
              QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
              Object[][]params=newObject[3][];
              for(inti=0;i<params.length;i++){
              params[i]=newObject[]{i};
              }
              qr.batch("deletefrombookwhereid=?",params);
              }
              }


            以上就是關于扣丁學堂java在線學習之ResultSetHandler常用結果集封裝的詳細介紹,希望對小伙伴們有所幫助,想要了解更多內容的小伙伴可以登錄扣丁學堂官網查詢??鄱W堂是專業(yè)的Java培訓機構,不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的Java視頻教程供學員掛看學習哦??鄱W堂java技術交流群:487098661。微信號:codingbb

            *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



            關鍵詞: Java視頻

            技術專區(qū)

            關閉