9.2JavaEE——JDBCTemplate的常用方法(三)query()方法

JdbcTemplate類中常用的查詢方法?

方法說明
List query(String sql, RowMapper rowMapper)執行String類型參數提供的SQL語句,并通過參數rowMapper返回一個List類型的結果。
List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)根據String類型參數提供的SQL語句創建PreparedStatement對象,通過參數rowMapper將結果返回到List中。
List query(String sql,Object[] args, RowMapper rowMapper)使用Object[]的值來設置SQL語句中的參數值,rowMapper是個回調方法,直接返回List類型的數據。
queryForObject(String sql,RowMapper rowMapper,Object… args)將args參數綁定到SQL語句中,并通過參數rowMapper返回一個Object類型的單行記錄。
queryForList(String sql,Object[] args, class<T> elementType)該方法可以返回多行數據的結果,但必須返回列表,args參數是sql語句中的參數,elementType參數返回的是List數據類型。

????????了解了JdbcTemplate類中幾個常用的query()方法后,接下來通過一個具體的案例演示query()方法的使用,案例實現步驟如下。

1、插入數據

????????向數據表account中插入幾條數據。

insert into 'account'('id','username','balance') 
values (1,'zhangsan',100),(3,'lisi',500),(4,'wangwu',300);

2、編寫查詢方法

????????在前面的AccountDao接口中,聲明findAccountById()方法,通過id查詢單個賬戶信息;聲明findAllAccount()方法,用于查詢所有賬戶信息。

// 通過id查詢
public Account findAccountById(int id);
// 查詢所有賬戶
public List<Account> findAllAccount();

3、實現查詢方法

????????在前面的的AccountDaoImpl類中,實現AccountDao接口中的findAccountById()方法和findAllAccount()方法,并調用query()方法分別進行查詢。

// 通過id查詢單個賬戶信息public Account findAccountById(int id) {//定義SQL語句String sql = "select * from account where id = ?";// 創建一個新的BeanPropertyRowMapper對象RowMapper<Account> rowMapper =new BeanPropertyRowMapper<Account>(Account.class);// 將id綁定到SQL語句中,并通過RowMapper返回一個Object類型的單行記錄return this.jdbcTemplate.queryForObject(sql, rowMapper, id);}//查詢所有賬戶信息public List<Account> findAllAccount() {// 定義SQL語句String sql = "select * from account";// 創建一個新的BeanPropertyRowMapper對象RowMapper<Account> rowMapper =new BeanPropertyRowMapper<Account>(Account.class);// 執行靜態的SQL查詢,并通過RowMapper返回結果return this.jdbcTemplate.query(sql, rowMapper);}

4、測試條件查詢

????????創建測試類FindAccountByIdTest,用于測試條件查詢。

public class FindAccountByIdTest {public static void main(String[] args) {// 加載配置文件ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml");// 獲取AccountDao實例AccountDao accountDao =(AccountDao) applicationContext.getBean("accountDao");Account account = accountDao.findAccountById(1);System.out.println(account);	}
}

5、測試查詢所有用戶信息

????????創建測試類FindAllAccountTest,用于查詢所有用戶賬戶信息。

public class FindAllAccountTest {public static void main(String[] args) {// 加載配置文件ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml");// 獲取AccountDao實例AccountDao accountDao =(AccountDao) applicationContext.getBean("accountDao");List<Account> account = accountDao.findAllAccount(); // 執行方法for (Account act : account) {// 循環輸出集合中的對象System.out.println(act); } }
}

6、查看運行結果

????????在IDEA中啟動FindAllAccountTest類,控制臺會輸出結果。

Account [id=1,username=zhangsan,balance=100.0]
Account [id=3,username=lisi,balance=500.0]
Account [id=4,username=wangwu,balance=300.0]

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

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

相關文章

9. Revit API UI: UIView、UIDocument、框選聚焦

9. Revit API UI: UIView、UIDocument、框選聚焦 UI命名空間下的API&#xff0c;到這里差不多就押送講完了&#xff0c;同Application那篇所講的幾個類與接口&#xff0c;都是帶UI的對應了一個不帶UI的&#xff0c;如UIApplication和Application&#xff0c;作用呢&#xff0c…

Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)構建前端程序

一、前言 搭建完Jenkins后&#xff0c;如何使用node進行構建前端呢&#xff0c;多個項目會使用的node的多個版本。如何動態指定node的版本進行構建呢。 方案一&#xff1a; 安裝多個node版本&#xff0c;然后進行指定。這樣比較麻煩。 方案二&#xff1a; 使用Jenkins的nv…

Spring相關面試題(三)

29 如何在所有的BeanDefinition注冊完成后&#xff0c;進行擴展 Bean工廠的后置處理器&#xff0c;在所有的Bean注冊完成后&#xff0c;就被執行。 public class A implements BeanFactoryPostProcessor {private String name "a class";private B b; ?public St…

ARM芯片架構(RTOS)

前言&#xff1a;筆記韋東山老師的rtos教程&#xff0c;連接放在最后 #ARM介紹 arm芯片屬于精簡指令集risc&#xff0c;所用的指令比較簡單&#xff0c;ARM架構是一種精簡指令集&#xff08;RISC&#xff09;架構&#xff0c;廣泛應用于移動設備、嵌入式系統、物聯網等領域。AR…

Linux:簡單說說分號“;”、單豎線“|”、雙豎線“||”、單“”、雙“”作為多個命令分隔符的用法

以下符號都可以用來連接多個命令&#xff0c;在一行中作為多個命令的分隔符。區別如下&#xff1a; 1、分號“;” 按照先后順序執行命令。每個命令都會在前一個命令執行完畢后立即執行。 如果其中一個命令出現錯誤&#xff0c;后續命令仍然會繼續執行。 2、單豎線“|” 作為管…

2. jenkins發布java項目

jenkins發布java項目 一、環境描述二、部署tomcat業務服務器三、部署git服務器&#xff0c;上傳測試代碼1、部署git服務器2、上傳測試代碼 四、jenkins對接組件1、安裝必要的插件2、對接git客戶端3、對接maven工具4、配置maven需要的jdk5、配置gitlab服務器的連接6、在jenkins上…

1161. 最大層內元素和

1161. 最大層內元素和 題目鏈接&#xff1a;1161. 最大層內元素和 代碼如下&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr)…

AI智能體文章索引

1&#xff0c;探索AI世界系列&#xff1a;俗說AI智能體 2&#xff0c;是真的嗎&#xff0c;不會代碼也能開發一款AI應用&#xff1f;GPTs讓人夢想成真 3&#xff0c;來了&#xff0c;你的第一個AI智能體 4&#xff0c;制作一個智能體&#xff1a;抖音熱點話題文案制作助手 5&am…

【Django】網上蛋糕項目商城-首頁

概念 本文在上一文章搭建完數據庫&#xff0c;以及創建好項目之后&#xff0c;以及前端靜態文件后&#xff0c;對項目的首頁功能開發。 后端代碼編寫 這里我們使用pymysql模塊對數據庫進行操作&#xff0c;獲取數據。因此需要在dos窗口使用以下指令下載該庫文件 pip instal…

springboot3搭建WebSocket服務

springboot3搭建WebSocket服務 文章目錄 springboot3搭建WebSocket服務前言一、創建SpringBoot工程二、pom.xml中引入依賴1.引入庫2. application.yml配置 三、主啟動類四、WebSocket配置類五、編寫WebSocket服務類六、編寫測試頁面總結 前言 本文詳細介紹了如何在SpringBoot項…

新型發電系統——光伏行業推動能源轉型

一、發展背景 “十四五”期間&#xff0c;隨著“雙碳”目標提出及逐步落實&#xff0c;本就呈現出較好發展勢頭的分布式光伏發展有望大幅提速。就“十四五”光伏發展規劃&#xff0c;國家發改委能源研究所可再生能源發展中心副主任陶冶表示&#xff0c;“雙碳”目標意味著國家…

Java面試題:比較Maven和Gradle的構建生命周期和依賴管理

Maven和Gradle是兩個流行的構建工具&#xff0c;各自有不同的構建生命周期和依賴管理機制。以下是它們的比較&#xff1a; 構建生命周期 Maven Maven有一個固定的生命周期&#xff0c;由一系列階段&#xff08;phases&#xff09;組成&#xff0c;每個階段代表一個構建步驟。…

ubuntu更改ssh默認端口22

編輯 /etc/ssh/sshd_config&#xff0c;把Port前的#去掉&#xff0c;端口號改成8022&#xff0c;重啟ssh。 // 1. 修改配置 sudo vi /etc/ssh/sshd_config// 2. 重啟 ssh sudo systemctl restart ssh//【不想確認可跳過此步驟】 3. 查看 ssh 監聽端口 sudo lsof -i:22 // 無…

MySQL改密

這里寫目錄標題 更改登錄密碼&#xff1a;有權限賬號能登錄mysql中&#xff1a;有權限賬號不能登錄mysql中&#xff1a;mysql5.6版本命令mysql5.7版本命令修改密碼8.0版本改完后&#xff1a; mysql登錄不上了本機安裝了5.6后&#xff0c;又安裝了mysql8.0 更改登錄密碼&#xf…

QT QVariant 類和 C++ 的 union有什么區別

QVariant 類和 C 的 union&#xff08;共用體&#xff09;在概念、用途和實現上有所不同。以下是對它們的區別和使用的簡要概述&#xff1a; QVariantQT 如何儲存多種數據類型&#xff08;QVariant &#xff09;-CSDN博客 概念&#xff1a;QVariant 是 Qt 框架中的一個類&…

易查分小程序丨查詢開始和截止時間如何設置?

老師在發布查詢時&#xff0c;希望讓學生家長在指定的時間段才能查詢&#xff0c;應該如何實現&#xff1f; 通過查詢時段功能&#xff0c;老師可以自主設置查詢開始和截止時間&#xff0c;下面就來教給大家如何使用吧&#xff01; 設置查詢時段演示效果 &#x1f4cc;使用教程…

ASP.NETMVC-簡單例子-數據庫查詢+razor使用+項目發布

環境&#xff1a; win10&#xff0c;SQL Server 2008 R2 參考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客園 https://www.cnblogs.com/fjiqiang/p/11131365.html 目錄 數據庫查詢要求思路操作 razor使用項目發布要求實現 數據庫查詢 要求 從服務器的數據庫中查…

干貨分享 | 學會這7個工具方法,數字化轉型規劃不是難題

提到數字化轉型&#xff0c;首要做的便是分析企業現有的業務流程和價值流&#xff0c;發現企業利潤來源的關鍵點&#xff0c;進而有針對性的數字化轉型。要實現傳統業務向數字化業務的轉變&#xff0c;制定出高效、靈活的業務流程優化策略顯得至關重要&#xff0c;這樣才能找到…

簡化數據提取:Excel-Extractor 使用指南

前言 在當今數據驅動的世界中&#xff0c;從復雜的 Excel 文件中提取和分析數據是許多業務和研究工作的基本需求。為了簡化這一過程&#xff0c;Excel-Extractor 項目應運而生。本文將為你介紹 Excel-Extractor 的功能和如何在你的項目中使用它。 什么是 Excel-Extractor&…

【C#】制作圖集

如題目&#xff0c;用好幾個圖片拼在一個大圖里&#xff0c;博主是用于Unity游戲開發使用的&#xff0c;話不多說&#xff0c;上代碼&#xff01; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging;namespace EffectsPac…