<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

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

發(fā)布人:扣丁學(xué)堂2 時(shí)間:2021-04-22 來(lái)源:工程師 發(fā)布文章

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

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

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

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

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

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

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

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

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

接下來(lái)扣丁學(xué)堂小編針對Java在線(xiàn)學(xué)習之ResultSetHandler常用結果集封裝案例分析,完成針對結果集的封裝。

案例代碼

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

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

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適合取一條記錄把該記錄的每一列值存儲到一個(gè)數組中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適合取多條記錄把該記錄的每一列值存儲到一個(gè)數組中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開(kāi)始/列名
  for(Objectobj:list){
  System.out.println(obj);
  }
  }
  //6.MapHandler適合取一條記錄把當前記錄的列名和列值放到一個(gè)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封裝到另一個(gè)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);
  }
  }
  以上代碼是針對查詢(xún),給出的對應操作。當然,我們實(shí)際工作中不只有查詢(xún),還會(huì )涉及到一些增刪改以及批量處理的功能。這時(shí)候我們就要使用QueryRunner類(lèi)中的另外兩個(gè)方法來(lái)完成了。他們分別是:
  update()用于執行insertupdatedelete
  batch()批處理可執行多條語(yǔ)句批量
  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()方法是批量處理
  *所需要的參數包括一個(gè)二維數組
  *Object[][]params=newObject[5][];高維的數5決定是執行sql語(yǔ)句的次數
  *低維數組的元素就是給sql語(yǔ)句?賦值的
  **/
  @Test
  publicvoidtestBatchInsert()throwsSQLException{
  QueryRunnerqr=newQueryRunner(C3P0Utils.getDataSource());
  //batch方法第二個(gè)參數是一個(gè)二維數組所以我們先創(chuàng  )建一個(gè)二維數組
  Object[][]params=newObject[5][];
  //給二維數組中每一個(gè)一維數組的元素進(jìn)行賦值
  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);
  }
  }


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

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



關(guān)鍵詞: Java視頻

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>