真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaWebdbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

這篇文章主要介紹JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、振興網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、振興網(wǎng)絡(luò)營(yíng)銷、振興企業(yè)策劃、振興品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供振興建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

JAVAWEB dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因及處理方法如下所示:

遍歷結(jié)果集時(shí)只遍歷bean對(duì)象才會(huì)只輸出第一行那種內(nèi)容(第一行是輸出了UserEntity類實(shí)例化的對(duì)象),所以這里需要 re.getRepoTableName() 才能通過(guò)對(duì)象調(diào)用相對(duì)應(yīng)的內(nèi)容

這樣一來(lái),就可以取到值了

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

PS:JavaWeb之DBUtils詳細(xì)介紹如下所示:

一、什么是DBUtils及作用

DBUtils是apache公司寫(xiě)的。DBUtils是java編程中的數(shù)據(jù)庫(kù)操作實(shí)用工具,小巧簡(jiǎn)單實(shí)用。

DBUtils封裝了對(duì)JDBC的操作,簡(jiǎn)化了JDBC操作??梢陨賹?xiě)代碼。

1.對(duì)于數(shù)據(jù)表的讀操作,他可以把結(jié)果轉(zhuǎn)換成List,Array,Set等java集合,便于程序員操作;

2.對(duì)于數(shù)據(jù)表的寫(xiě)操作,也變得很簡(jiǎn)單(只需寫(xiě)sql語(yǔ)句)

3.可以使用數(shù)據(jù)源,使用JNDI,數(shù)據(jù)庫(kù)連接池等技術(shù)來(lái)優(yōu)化性能--重用已經(jīng)構(gòu)建好的數(shù)據(jù)庫(kù)連接對(duì)象

二、DBUtils的三個(gè)核心對(duì)象

 2.1、QueryRunner類

QueryRunner中提供對(duì)sql語(yǔ)句操作的API.它主要有三個(gè)方法:query() 用于執(zhí)行select,update() 用于執(zhí)行insert update delete,batch() 批處理。等下下面的會(huì)詳細(xì)的介紹這幾種方法的用法。

2.2、ResultSetHandler接口

用于定義select操作后,怎樣封裝結(jié)果集.它總共有9個(gè)常用的實(shí)現(xiàn)類,下面我會(huì)詳細(xì)的為大家介紹怎么去使用。

2.3、DbUtils類

它就是一個(gè)工具類,定義了關(guān)閉資源與事務(wù)處理的方法

三、怎么去使用DBUtils框架

 3.1、使用步驟

導(dǎo)入相對(duì)應(yīng)的jar包

創(chuàng)建QueryRunner對(duì)象

      使用query方法執(zhí)行select語(yǔ)句

      使用ResultSetHandler封裝結(jié)果集

      使用DbUtils類釋放資源

3.2、實(shí)例

注:本人使用的是C3P0連接池

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;
import com.jxlg.domain.User;
public class TestSelect {
 @Test
 public void testSelect(){
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  // new ResultSetHandler>告訴我們?nèi)绾畏庋b結(jié)果集
  List list = qr.query("select * from user", new ResultSetHandler>(){
  @Override
  //query語(yǔ)句執(zhí)行select語(yǔ)句后,結(jié)果一返回值的形式傳遞過(guò)來(lái)
  public List handle(ResultSet rs) throws SQLException {
   List list = new ArrayList();
   while(rs.next()){
   User u = new User();
   u.setId(rs.getInt(1));
   u.setUsername(rs.getString(2));
   u.setPassword(rs.getString(3));
   u.setEmail(rs.getString(4));
   u.setBirthday(rs.getDate(5));
   list.add(u);
   }
   return list;
  }
  });
  for (User user : list) {
  System.out.println(user);
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
}
 @Test
 public void testSelect2(){
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  //執(zhí)行sql語(yǔ)句,返回結(jié)果
  List list = qr.query("select * from user where id=? and username=?", new BeanListHandler(User.class),1,"tom");
  for (User user : list) {
  System.out.println(user);
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
}

四、DBUtils三個(gè)核心對(duì)象詳解

4.1、QueryRunner對(duì)象

4.1.1、構(gòu)造函數(shù)

new QueryRunner(); 它的事務(wù)可以手動(dòng)控制?!                 ?/p>

也就是說(shuō)此對(duì)象調(diào)用的方法(如:query、update、batch)參數(shù)中要有Connection對(duì)象。

     new QueryRunner(DataSource ds); 它的事務(wù)是自動(dòng)控制的。一個(gè)sql一個(gè)事務(wù)。                         

此對(duì)象調(diào)用的方法(如:query、update、batrch)參數(shù)中無(wú)需Connection對(duì)象。

4.1.2、常用方法 

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么

4.2、ResultSetHandler接口

4.2.1、它有9個(gè)結(jié)果處理器

ArrayHandler:適合取1條記錄。把該條記錄的每列值封裝到一個(gè)數(shù)組中Object[]
    ArrayListHandler:適合取多條記錄。把每條記錄的每列值封裝到一個(gè)數(shù)組中Object[],把數(shù)組封裝到一個(gè)List中
    ColumnListHandler:取某一列的數(shù)據(jù)。封裝到List中。
    KeyedHandler:取多條記錄,每一條記錄封裝到一個(gè)Map中,再把這個(gè)Map封裝到另外一個(gè)Map中,key為指定的字段值。
    MapHandler:適合取1條記錄。把當(dāng)前記錄的列名和列值放到一個(gè)Map中
    MapListHandler:適合取多條記錄。把每條記錄封裝到一個(gè)Map中,再把Map封裝到List中
    ScalarHandler:適合取單行單列數(shù)據(jù)
    BeanHandler
    BeanListHandler

4.2.2、實(shí)例     

import static org.junit.Assert.*;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.KeyedHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;
import com.jxlg.domain.User;
public class TestResultSetHandler {
 @Test
 public void test1() {
 //ArrayHandler:適合取1條記錄。把該條記錄的每列值封裝到一個(gè)數(shù)組中Object[]
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  Object[] o = qr.query("select * from user where id=?", new ArrayHandler(),5);
  for (Object object : o) {
  System.out.println(object);
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 @Test
 public void test2() throws SQLException {
 //ArrayListHandler:適合取多條記錄。把每條記錄的每列值封裝到一個(gè)數(shù)組中Object[],把數(shù)組封裝到一個(gè)List中
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 List list = qr.query("select * from user", new ArrayListHandler());
 for (Object[] objects : list) {
  for (Object object : objects) {
  System.out.println(object);
  }
  System.out.println("----------------------");
 }
 }
 @Test
 public void test3() throws SQLException {
 //ColumnListHandler:取某一列的數(shù)據(jù)。封裝到List中
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 List list = qr.query("select username,password from user ", new ColumnListHandler(1));
 for (Object object : list) {
  System.out.println(object);
 } 
 }
 @Test
 public void test4() throws SQLException {
 //KeyedHandler:取多條記錄,每一條記錄封裝到一個(gè)Map中,
 //再把這個(gè)Map封裝到另外一個(gè)Map中,key為指定的字段值。
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 //大的Map的key是表中的某列數(shù)據(jù),小的Map的key是表的列名,所以大的map的key用的是Object類型,小的是String。
 Map> map = qr.query("select * from user", new KeyedHandler(1));
 for (Map.Entry> m : map.entrySet()) {
  System.out.println(m);//就是id至,因?yàn)樵O(shè)置了“1”.
  for (Map.Entry mm : m.getValue().entrySet()) {
  System.out.println(mm);//取出小map中的key和value
  }
  System.out.println("--------------------");
 }
 }
 @Test
 public void test5() throws SQLException {
 //MapHandler:適合取1條記錄。把當(dāng)前記錄的列名和列值放到一個(gè)Map中
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 Map map = qr.query("select * from user", new MapHandler());
 for (Map.Entry m : map.entrySet()) {
  System.out.println(m.getKey()+"\t"+m.getValue());
  //默認(rèn)取第一行數(shù)據(jù),需要去其它行用where加條件
 }
 }
 @Test
 public void test6() throws SQLException {
 //MapListHandler:適合取多條記錄。把每條記錄封裝到一個(gè)Map中,再把Map封裝到List中
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 List> list = qr.query("select * from user", new MapListHandler());
 for (Map map : list) {
  for (Map.Entry m : map.entrySet()) {
  System.out.println(m); 
  }
  System.out.println("-----------");
 }
 }
 @Test
 public void test7() throws SQLException {
 //ScalarHandler:適合取單行單列數(shù)據(jù)
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 Object o = qr.query("select * from user", new ScalarHandler(2));
 System.out.println(o);
 } 
 @Test
 public void test8() throws SQLException {
 //BeanHandler:適合取單行單列數(shù)據(jù)
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 User user = qr.query("select * from user", new BeanHandler(User.class));
 System.out.println(user);
 } 
}

五、使用DBUtils做一個(gè)增刪改查的例子  

import static org.junit.Assert.*;
import java.sql.SQLException;
import java.util.Date;
import javax.crypto.spec.OAEPParameterSpec;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;
public class TestInCURD {
 @Test
 public void testInsert() {
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  qr.update("insert into user (username,password,email,birthday)values(?,?,?,?)", "guapi","4646","guapi@163.com",new Date());
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 @Test
 public void testUpdate() {
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  qr.update("update user set username=?,password=? where id=4 ", "meizimeizi","520520");
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 @Test
 public void testDelete() {
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  qr.update("delete from user where id=? ",4);
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 @Test
 public void testBatch() {
 //創(chuàng)建一個(gè)QueryRunner對(duì)象
 QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
 try {
  Object[][] params = new Object[10][]; //高維代表執(zhí)行多少次sql語(yǔ)句
  for(int i =0;i

以上是“JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章題目:JavaWebdbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因是什么
文章路徑:http://weahome.cn/article/gohdpd.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部