java----DBUtils知識點補充

dbutils 只是幫我們簡化了CRUD 的代碼, 但是連接的創建以及獲取工作。 不在他的考慮范圍

QueryRunner主要是這個類

import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;import com.mchange.v2.c3p0.ComboPooledDataSource;public class DBUtilsDemo1 {//dbutils 只是幫我們簡化了CRUD 的代碼, 但是連接的創建以及獲取工作。 不在他的考慮范圍//QueryRunner主要是這個類public static void main(String[] args) throws SQLException {//本部分演示QueryRunner類的增加,刪除,更新//結合C3p0的配置文件的使用方式,直接一行代碼獲取連接QueryRunner queryRunner=new QueryRunner(new ComboPooledDataSource());//增加String sql="insert into blank values (null,?,?)";//刪除String sql2="delete from blank where id=?";//更新String sql3="update blank set money=? where id=?";//直接執行就可以了//queryRunner.update(sql,"testroot",20000000);//刪除的執行語句//queryRunner.update(sql2,1);//更新的執行語句queryRunner.update(sql3,800000,3);}
}

?

?

下面是實現從數據庫中查詢一條或者多條數據

有如下六種方法

######ResultSetHandler 常用的實現類(重點)
以下兩個是使用頻率最高的BeanHandler,  查詢到的單個數據封裝成一個對象BeanListHandler, 查詢到的多個數據封裝 成一個List<對象>
------------------------------------------
ArrayHandler,  查詢到的單個數據封裝成一個數組
ArrayListHandler, 查詢到的多個數據封裝成一個集合 ,集合里面的元素是數組。

MapHandler, 查詢到的單個數據封裝成一個map MapListHandler,查詢到的多個數據封裝成一個集合 ,集合里面的元素是map。

?

?

首先看下常規的操作

import java.sql.ResultSet;
import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.sun.swing.internal.plaf.basic.resources.basic;public class DBUtilDemo2 {
//演示查詢一條或者多條數據庫中的信息public static void main(String[] args) throws SQLException {//首先一條語句獲得數據庫的連接QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());//然后使用ResultSetHandler(這種不是框架,屬于常規操作)Account  accoun =  queryRunner.query("select * from blank where id = ?", new ResultSetHandler<Account>(){public Account handle(ResultSet rs) throws SQLException {Account account=new Account();while(rs.next()){String name=rs.getString("name");int money=rs.getInt("money");account.setName(name);account.setMoney(money);}return account;}},5);System.out.println(accoun.getName()+"========"+accoun.getMoney());}
}

?

?

?

?

 BeanHandler,  查詢到的單個數據封裝成一個對象
public class DBUtilDemo2 {
//演示查詢一條或者多條數據庫中的信息public static void main(String[] args) throws SQLException {//首先一條語句獲得數據庫的連接QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());//然后使用ResultSetHandler(這種不是框架,屬于常規操作)Account  accoun =  queryRunner.query("select * from blank where id = ?", new BeanHandler<Account>(Account.class),5);System.out.println(accoun.getName()+"========"+accoun.getMoney());//testroot========20000000
    }
}

?

?

?

BeanListHandler, 查詢到的多個數據封裝 成一個List<對象>
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.sun.swing.internal.plaf.basic.resources.basic;public class DBUtilDemo2 {
//演示查詢一條或者多條數據庫中的信息public static void main(String[] args) throws SQLException {//首先一條語句獲得數據庫的連接QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());//BeanListHandler獲得數據庫的全部信息List<Account> list= queryRunner.query("select * from blank", new BeanListHandler<Account>(Account.class));//遍歷輸出int len=list.size();for(int i=0;i<len;i++){Account blank=list.remove(0);System.out.println(blank.getName()+"====="+blank.getMoney());}}
}

?

?

?

其中Account類代碼如下

public class Account {public String name;public int money;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getMoney() {return money;}public void setMoney(int money) {this.money = money;}}

轉載于:https://www.cnblogs.com/byczyz/p/11349538.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386198.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386198.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386198.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大廠offer手到擒來,Java面試真題精選

前言 事務我們都知道是什么&#xff0c;而Spring事務就是在數據庫之上利用AOP提供聲明式事務和編程式事務幫助我們簡化開發&#xff0c;解耦業務邏輯和系統邏輯。但是Spring事務原理是怎樣&#xff1f;事務在方法間是如何傳播的&#xff1f;為什么有時候事務會失效&#xff1f…

大廠也在用的6種數據脫敏方案,醍醐灌頂!

前言 由于作者面試過程中高度緊張&#xff0c;本文中只列出了自己還記得的部分題目。 經歷了漫長一個月的等待&#xff0c;終于在前幾天通過面試官獲悉已被螞蟻金服錄取&#xff0c;這期間的焦慮、痛苦自不必說&#xff0c;知道被錄取的那一刻&#xff0c;一整年的陰霾都一掃…

大牛帶你直擊優秀開源框架靈魂,給大家安排上!

前言 微架構的出現&#xff0c;很好地適應了這個時代對快速發展變化的要求。它不再提倡一體化的項目設計&#xff0c;而是對項目進行有效的“業務區”(可以簡單理解為不同的子系統〉劃分&#xff0c;并利用合理的技術對業務性能做出提升和改善&#xff0c;同時又極大地簡化了配…

大牛用SSM框架實現了支付寶的支付功能,滿滿干貨指導

前言 現在刷抖音經常可以看到一些老外街坊&#xff0c;問他們最想把什么帶回自己的國家&#xff0c;我聽過很多的回答都是&#xff1a;淘寶&#xff0c;支付寶&#xff0c;美食&#xff0c;微信&#xff0c;外賣&#xff0c;高鐵等等。 確實如此&#xff0c;隨著國家的快速發…

java---Listener Filter知識點學習

##Listener > 監聽器 * 能做什么事&#xff1f; > 監聽某一個事件的發生。 狀態的改變。 * 監聽器的內部機制 > 其實就是接口回調. ####接口回調 * 需求&#xff1a; > A在執行循環&#xff0c;當循環到5的時候&#xff0c; 通知B。 > 事先先把一個對象傳遞給 …

頭條三面技術四面HR,就是這么簡單

前言 看日期&#xff0c;今天都是4月了&#xff0c;這春招也差不多進入尾聲了。 近期任有不少朋友都在找工作&#xff0c;很多人開始抱怨&#xff0c;工作可真難找啊&#xff01;身邊不少朋友問我咋搞呀&#xff0c;秋招都要結束了&#xff0c;工作還沒著落呢…額…這個…今年…

臨時表

tmp_table_size 這個配置限制了內存臨時表的大小&#xff0c;默認值是 16M。 如果臨時表大小超過了 tmp_table_size&#xff0c;那么內存臨時表就會轉成磁盤臨時表 磁盤臨時表使用的引擎默認是 InnoDB&#xff0c;是由參數 internal_tmp_disk_storage_engine 控制的。 轉載于:h…

如何保證Redis與數據庫的雙寫一致性?進階加薪全靠它!

我有話要說&#xff0c;請仔細看完 我發現一個現象&#xff0c;很多開發5年的程序員仍然停留在crud的階段&#xff0c;這是什么原因&#xff1f; 最主要的原因就是基礎很差&#xff0c;尤其對于JVM和并發編程這方面掌握的比較差&#xff0c;而JVM和并發編程就是非常非常重要的…

Swimming Balls

Swimming Balls https://vjudge.net/contest/318752#problem/J如果直接算&#xff0c;各種球的情況都不清楚&#xff0c;因為放一個球之后&#xff0c;水位的變化也會影響之前放入的球&#xff0c;不如&#xff0c;二分最終的水位高度&#xff0c;這樣每個球的貢獻就有了 #incl…

如何保證redis高可用?薪資翻倍

前言&#xff1a; 首先介紹一下我的同學&#xff0c;專科畢業應用電子技術專業&#xff0c;已經畢業快兩年了。因為專業的原因工作一年覺得沒什么發展前途就想轉行&#xff0c;身為他的“好基友”&#xff0c;他覺得我這個工作挺好的&#xff0c;就咨詢了我一下&#xff0c;經…

Linux中強大的輸入輸出重定向和管道

Linux中有三個最重要的輸入輸出流: Standard Input(STDIN) - 通常指鍵盤的輸入 Standard Output(STDOUT) - 通常指顯示器的輸出 Standard Error(STDERR) - 通常也是重定向到顯示器 默認情況下&#xff0c;分別是0表示標準輸入(stdin),1表示標準輸出(stdout),2表示標準錯誤。 參…

如何保證消息隊列的高可用?透徹分析源碼

前言 成為優秀的架構師是大部分初中級工程師的階段性目標。優秀的架構師往往具備七種核心能力&#xff1a;編程能力、調試能力、編譯部署能力、性能優化能力、業務架構能力、在線運維能力、項目管理能力和規劃能力。 這幾種能力之間的關系大概如下圖。編程能力、調試能力和編…

rails 放在 apache一個目錄下面的配置方法

<Location /redmine> ProxyPass http://localhost:3000 ProxyPassReverse http://localhost:3000/</Location>然后&#xff0c;配置additional_environment.rb文件中config.action_controller.relative_url_root /redmine這樣基本就可以了&#xff0c;但是&…

如何化身BAT面試收割機?不吃透都對不起自己

前言 多線程相對于其他 Java 知識點來講&#xff0c;有一定的學習門檻&#xff0c;并且了解起來比較費勁。在平時工作中如若使用不當會出現數據錯亂、執行效率低&#xff08;還不如單線程去運行&#xff09;或者死鎖程序掛掉等等問題&#xff0c;所以掌握了解多線程至關重要。…

Tensorflow2.0開啟,從此忘記1.*版本

1.可使用GPU&#xff0c;提升上百倍的效率 2.可自動求導 3.內置神經網絡API 使用cast&#xff0c;可以轉換成相應的類型 轉載于:https://www.cnblogs.com/ningxinjie/p/11412653.html

如何在面試中通過工廠模式來給自己加分?逆襲面經分享

拼多多三面慘敗&#xff0c;java中間件、數據庫與spring框架&#xff0c;答不上… 面試開火箭&#xff0c;工作擰螺絲…月初有個朋友面試拼多多&#xff0c;一面自信滿滿過了&#xff0c;結果三面卻慘敗…昨天朋友約我出來討論問題在哪里&#xff0c;三面就答不上了&#xff0…

CNN/RNN TF1.4

###CNN###import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data這些是tf1.*版本&#xff0c;現在我已經升級到2.0版本&#xff0c;上方數據集都用不了了...黑白圖片&#xff0c;因此這里使用的是2Dmnistinput_data.read_data_sets("MNIST…

Java-類與對象

Java&#xff0c;從一開始學習這門技術&#xff0c;我們就被注入了一個概念——“Java是一門面向對象編程語言。”是的&#xff0c;Java之所以簡單而具有優勢&#xff0c;就是因為面向對象所帶來的方便。這種方式免去了C 中反復而難以理解的指針和多繼承&#xff0c;“可以讓程…

Hibernate學習筆記(一)

####1.1Hibernate框架的學習路線?第一天&#xff1a;Hibernate的入門&#xff08;Hibernate的環境搭建、Hibernate的API、Hibernate的CRUD&#xff09;?第二天&#xff1a;Hibernate的一級緩存、其他的API?第三天&#xff1a;Hibernate的一對多配置、Hibernate的多對多的配置…

Java-進階:Java-File--IO—1

#目錄 一、File 類 二、IO流 三、字節輸出流 四、字節輸入流 五、字節流文件復制 六、字符輸出流 七、字符輸入流 八、字符流復制文本文件 ##一、File 類 ###1. 概述 文件 和 目錄路徑名 的抽象表達形式 Java中把文件或者目錄&#xff08;文件夾&#xff09;都封裝成 File對象…