iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Software Development

Spring Boot 零基礎入門系列 第 27

Spring Boot 零基礎入門 (27) - Spring JDBC 的用法 (下) - 執行 SELECT sql

  • 分享至 

  • xImage
  •  

賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架

哈囉大家好,我是古古

在上一篇文章中,有先介紹了如何透過 Spring JDBC 的 update() 方法,去執行 INSERT、UPDATE、DELETE 這三種 sql 語法

那麼接著這篇文章,就會來介紹要如何透過 Spring JDBC 的 query() 方法,去執行 SELECT 這一種 sql 語法

回顧:Spring JDBC 根據 sql 分成兩大類:update 和 query

在 Spring JDBC 中,會根據 sql 的語法去區分成兩大類,分別是 update 系列和 query 系列

  • 在 update 系列的方法中,可以去執行 INSERT、UPDATE、DELETE 這三種 sql 語法
  • 而在 query 系列的方法中,只能執行 SELECT 這一種 sql 語法

https://ithelp.ithome.com.tw/upload/images/20231011/201510360MgPo86beF.png

在上一篇文章 Day 26 - Spring JDBC 的用法 (上) - 執行 INSERT、UPDATE、DELETE sql 中,我們有介紹了 update() 方法的用法,去執行 INSERT、UPDATE、DELETE 這三種 sql 語法

所以接著這篇文章,就會來介紹如何透過 query() 方法,在 Spring Boot 中去執行 SELECT sql

query() 的用法


query() 方法的前兩個參數和 update() 方法一樣,都是先放入「要執行的 sql 語法」,接著是放入「動態決定 sql 變數的 map」

query() 方法特別的地方,就在於他的第三個參數 RowMapper

補充:有關前兩個參數的用法,可以參考上一篇文章的介紹

https://ithelp.ithome.com.tw/upload/images/20231012/20151036m57twtjdOE.png

RowMapper 的用途

query() 方法中的第三個參數 RowMapper,他的用途,就是**「將資料庫查詢出來的數據,轉換成是 Java object」**

像是我們可以創建一個新的 StudentRowMapper class,然後讓他去 implements RowMapper 這個 interface,實作如下的程式:

public class StudentRowMapper implements RowMapper<Student> {

    @Override
    public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
        Student student = new Student();
        student.setId(rs.getInt("id"));
        student.setName(rs.getString("name"));
        return student;
    }
}

相關連結



上一篇
Spring Boot 零基礎入門 (26) - Spring JDBC 的用法 (上) - 執行 INSERT、UPDATE、DELETE sql
下一篇
Spring Boot 零基礎入門 (28) - MVC 架構模式 - Controller-Service-Dao 三層式架構
系列文
Spring Boot 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言