日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring: 使用Spring提供的JDBC模板(使用profiles选择数据源/使用基于JDBC驱动的数据源)...

發布時間:2025/5/22 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring: 使用Spring提供的JDBC模板(使用profiles选择数据源/使用基于JDBC驱动的数据源)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring提供的JDBC框架負責管理資源和異常處理,從而可以簡化開發者的JDBC代碼。開發者只需要編寫寫入和讀取數據庫相關的代碼即可。

正如在之前的小節中論述過的,Spring將數據庫訪問過程中的模板樣式代碼封裝到各個模板類中了,對于JDBC,Spring提供了下列三個模板類:

  • JdbcTemplate——最基本的JDBC模板,這個類提供了簡單的接口,通過JDBC和索引參數訪問數據庫;
  • NameParameterJdbcTemplate——這個JDBC模板類是的開發者可以執行綁定了指定參數名稱的SQL,而不是索引參數;
  • SimpleJdbcTemplate——這個版本的JDBC模板利用了Java 5的一些特性,例如自動裝箱/拆箱、接口和變參列表等,用于簡化JDBC模板的使用。

從Spring 3.1開始已經將SimpleJdbcTemplate廢棄,它所擁有的Java 5那些特性被添加到原來的JdbcTemplate中了,因此你可以直接使用JdbcTemplate;當你希望在查詢中使用命名參數時,則可以選擇使用NamedParameterJdbcTemplate。

INSERTING DATA USING JDBCTEMPLATE

要使用JdbcTemplate對象,需要為之傳遞DataSource對象。如果使用Java Config配置JdbcTemplatebean,則對應代碼如下:

@Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) {return new JdbcTemplate(dataSource); }

  

這里通過構造函數將DataSource對象注入,而dataSourcebean則來自DataSourceConfiguration文件中定義的javax.sql.DataSource實例。

然后就可以在自己的repository實現中注入jdbcTemplatebean,例如,假設Spitter的repository使用jdbcTemplatebean,代碼可列舉如下:

package org.test.spittr.dao;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcOperations; import org.springframework.stereotype.Repository; import org.test.spittr.data.Spitter;@Repository public class JdbcSpitterRepository implements SpitterRepository {@Autowiredprivate JdbcOperations jdbcOperations;..... }

  

這里JdbcSpitterRepository被@Repository注解修飾,component-scanning掃描機制起作用時會自動創建對應的bean。按照“面向接口編程”的原則,我們定義JdbcOperations接口對應的實例,而JdbcTemplate實現了這個接口,從而使得JdbcSpitterRepository與JdbcTemplate解耦合。

使用JdbcTemplate實現的addSpitter()方法非常簡單,代碼如下:

public void addSpitter(Spitter spitter) {jdbcOperations.update(SQL_INSERT_SPITTER,spitter.getUsername(),spitter.getPassword(),spitter.getFirstName(),spitter.getLastName()); }

  

可以看出,這個版本的addSpitter十分簡單,不強制開發者寫任何管理資源和處理異常的代碼,只有插入語句和對應的參數。

當調用update()方法時,JdbcTemplate獲取一個連接、創建一個statement,并執行插入語句。

JdbcTemplate內部捕獲了可能拋出的SQLException異常,然后轉為更具體的數據庫訪問異常,并重新拋出。由于Spring的數據庫訪問異常都是運行時異常,開發者可以自己決定是否捕獲這些異常。

READING DATA WITH JDBCTEMPLATE

使用JdbcTemplate工具從數據庫中讀取數據也非常簡單,下列代碼展示了改造過后的findOne()函數:調用JdbctTemplate的queryForObject函數,用于通過ID查詢Spitter對象。

public Spitter findOne(long id) {return jdbcOperations.queryForObject(SQL_SELECT_SPITTER,new SpitterRowMapper(),id); }private static final class SpitterRowMapper implements RowMapper<Spitter> {public Spitter mapRow(ResultSet resultSet, int i) throws SQLException {return new Spitter(resultSet.getLong("id"),resultSet.getString("firstName"),resultSet.getString("lastName"),resultSet.getString("username"),resultSet.getString("password"));} }

  

findOne()函數使用JdbcTemplate的queryForObject()方法從數據庫中查詢Spitter記錄。queryForObject()方法包括三個參數:

  • SQL字符串,用于從數據庫中查詢數據;
  • RowMapper對象,用于從結果集ResultSet中提取數據并構造Spitter對象;
  • 變量列表,用于指定查詢參數(這里是通過id查詢)。

這里需要注意SpitterRowMapper類,它實現了RowMapper接口,對于查詢結果,JdbcTemplate調用mapRow()方法——一個ResultSet參數和一個row number參數。mapRow()方法的主要作用是:從結果集中取出對應屬性的值,并構造一個Spitter對象。

和addSpitter()方法相同,findOne()方法也沒有那些JDBC模板樣式代碼,只有純粹的用于查詢Spitter數據的代碼。

?

https://yq.aliyun.com/articles/54079

轉載于:https://www.cnblogs.com/achengmu/p/8301529.html

總結

以上是生活随笔為你收集整理的spring: 使用Spring提供的JDBC模板(使用profiles选择数据源/使用基于JDBC驱动的数据源)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产午夜精品一区二区三区嫩草 | 最好看的日本字幕mv视频大全 | 国产精品 色 | 浮妇高潮喷白浆视频 | 99久久久精品免费观看国产 | 日韩在线观看视频一区二区三区 | 特大黑人巨交性xxxx | 国产在线播放一区二区 | 国产日韩一区二区 | 激情视频国产 | 成人网战| 欧美性爱视频久久 | 日韩成年人视频 | 亚洲狼人av | 国产精品亚洲专区无码牛牛 | 五月天激情视频 | 免费成人黄色 | 日本欧美一区二区三区不卡视频 | 亚洲精品久久久久中文字幕二区 | 亚洲国产精品久久久久 | 国产高清视频在线观看 | 一本久久综合亚洲鲁鲁五月天 | 天堂av2014| 亚洲欧美日韩国产一区二区 | 久久婷香 | 欧美人与性动交g欧美精器 国产在线视频91 | 五月天视频网站 | 一级黄色短片 | 黄色一级大片在线免费看国产 | 中国一区二区视频 | 一区二区三区在线观看视频 | 国产精品123 | 天天操天天摸天天干 | 插插插网站 | 日本视频三区 | 99爱免费视频 | 人人草人人搞 | 91在线精品入口 | 国产视频在线观看一区 | 久久婷婷五月综合色国产香蕉 | 一区二区三区资源 | 好男人www日本 | se94se欧美| 影音先锋中文字幕一区 | 日韩午夜 | 国产精品人人做人人爽 | 亚洲精选在线观看 | 手机天堂网| 午夜影院欧美 | www.一区二区 | 日韩激情一区二区三区 | www.美色吧.com| 国产成人自拍视频在线观看 | 丁香啪啪综合成人亚洲 | 国产一区二区三区四区精 | 精品国产一二三 | 婷婷视频在线观看 | 日本中文字幕成人 | 成人在线观看小视频 | 拔插拔插华人 | 在线看片国产 | 欧美性受xxxx黑人xyx性 | 国产999精品久久久久久 | 午夜影院久久 | 成年人黄色片 | 99视频在线播放 | 男女床上拍拍拍 | 华人色| 黄色www视频 | www狠狠| 亚洲第一区在线观看 | 成人精品网址 | 久久毛片视频 | 伊人天天干 | 免费啊v在线观看 | 中文字幕 成人 | 熊出没之冬日乐翻天免费高清观看 | 伊人99在线 | 玖玖爱国产 | 全黄性高潮 | 欧美三级午夜理伦 | 亚洲校园激情 | 免费在线观看黄网 | 无套在线观看 | 一道本久久 | 性色av一区| 欧美网站在线观看 | 国产一区二区三区高清 | 亚洲综合av网 | 日批在线视频 | 加勒比综合 | 国产精品海角社区 | 依依激情网 | 国内毛片毛片毛片 | 国产精品无码中文字幕 | 男人的天堂a在线 | 免费观看在线视频 | 公交顶臀绿裙妇女配视频 | 重口变态虐黄网站 |