中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jdbcTemplate使用方法實例解析

發布時間:2020-09-14 13:56:55 來源:腳本之家 閱讀:190 作者:小白coder 欄目:編程語言

這篇文章主要介紹了jdbcTemplate使用方法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Spring JDBC抽象框架core包提供了JDBC模板類,其中JdbcTemplate是core包的核心類,所以其他模板類都是基于它封裝完成的,JDBC模板類是第一種工作模式。

JdbcTemplate類通過模板設計模式幫助我們消除了冗長的代碼,只做需要做的事情(即可變部分),并且幫我們做哪些固定部分,如連接的創建及關閉。

在application-mybatis.xml中配置的DataSource注入到JdbcTemplate中,就可以使用JdbcTemplate模板了

配置文件中加入以下內容:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/><!--加載驅動-->
    <property name="url" value="${jdbc.url}"/><!--數據庫的位置-->
    <property name="username" value="${jdbc.username}"/><!--數據庫的用戶名-->
    <property name="password" value="${jdbc.password}"/><!--對應的密碼-->
    <property name="maxActive" value="50"/><!--連接池的最大活動數-->
    <property name="minIdle" value="5"/><!--最少保持5條空閑連接-->
    <property name="maxWait" value="5000"/><!--等待時間5秒-->
</bean>

java文件:

@Autowired
  @Qualifier("dataSource")
  public DataSource dataSource;

  public JdbcTemplate getJdbcTemplate(){
    JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource);
    return jdbcTemplate;
  }

此時jdbcTemplate變量中便會有相關的數據庫的基本參數配置信息,

jdbcTemplate類型中有如下方法

jdbcTemplate使用方法實例解析

JdbcTemplate主要提供以下五類方法:

execute方法:可以用于執行任何SQL語句,一般用于執行DDL語句;

update方法及batchUpdate方法:update方法用于執行新增、修改、刪除等語句;batchUpdate方法用于執行批處理相關語句;

query方法及queryForXXX方法:用于執行查詢相關語句;

//1.查詢一行數據并返回int型結果 
jdbcTemplate.queryForInt("select count(*) from test"); 
//2. 查詢一行數據并將該行數據轉換為Map返回 
jdbcTemplate.queryForMap("select * from test where name='name5'"); 
//3.查詢一行任何類型的數據,最后一個參數指定返回結果類型 
jdbcTemplate.queryForObject("select count(*) from test", Integer.class); 
//4.查詢一批數據,默認將每行數據轉換為Map    
jdbcTemplate.queryForList("select * from test"); 
//5.只查詢一列數據列表,列類型是String類型,列名字是name 
jdbcTemplate.queryForList(" 
select name from test where name=?", new Object[]{"name5"}, String.class); 
//6.查詢一批數據,返回為SqlRowSet,類似于ResultSet,但不再綁定到連接上 
SqlRowSet rs = jdbcTemplate.queryForRowSet("select * from test");

call方法:用于執行存儲過程、函數相關語句。

支持的回調接口如下:

jdbcTemplate使用方法實例解析

JdbcTemplate類支持的回調類:

預編譯語句及存儲過程創建回調:用于根據JdbcTemplate提供的連接創建相應的語句;

PreparedStatementCreator:通過回調獲取JdbcTemplate提供的Connection,由用戶使用該Conncetion創建相關的PreparedStatement;

CallableStatementCreator:通過回調獲取JdbcTemplate提供的Connection,由用戶使用該Conncetion創建相關的CallableStatement;

預編譯語句設值回調:用于給預編譯語句相應參數設值;

PreparedStatementSetter:通過回調獲取JdbcTemplate提供的PreparedStatement,由用戶來對相應的預編譯語句相應參數設值;

BatchPreparedStatementSetter:;類似于PreparedStatementSetter,但用于批處理,需要指定批處理大小;

自定義功能回調:提供給用戶一個擴展點,用戶可以在指定類型的擴展點執行任何數量需要的操作;
ConnectionCallback:通過回調獲取JdbcTemplate提供的Connection,用戶可在該Connection執行任何數量的操作;

StatementCallback:通過回調獲取JdbcTemplate提供的Statement,用戶可以在該Statement執行任何數量的操作;

PreparedStatementCallback:通過回調獲取JdbcTemplate提供的PreparedStatement,用戶可以在該PreparedStatement執行任何數量的操作;

CallableStatementCallback:通過回調獲取JdbcTemplate提供的CallableStatement,用戶可以在該CallableStatement執行任何數量的操作;

結果集處理回調:通過回調處理ResultSet或將ResultSet轉換為需要的形式;

RowMapper:用于將結果集每行數據轉換為需要的類型,用戶需實現方法mapRow(ResultSet rs, int rowNum)來完成將每行數據轉換為相應的類型。

RowCallbackHandler:用于處理ResultSet的每一行結果,用戶需實現方法processRow(ResultSet rs)來完成處理,在該回調方法中無需執行rs.next(),該操作由JdbcTemplate來執行,用戶只需按行獲取數據然后處理即可。

ResultSetExtractor:用于結果集數據提取,用戶需實現方法extractData(ResultSet rs)來處理結果集,用戶必須處理整個結果集;

JdbcTemplate執行流程:首先定義SQL,其次調用JdbcTemplate方法執行SQL,最后通過RowCallbackHandler回調處理ResultSet結果集。

Spring JDBC解決方法相比傳統JDBC編程方式簡單多了,只有可變部分需要我們來做,其他的都由Spring JDBC框架來實現了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无锡市| 汶川县| 陵川县| 旌德县| 呼和浩特市| 曲阜市| 四会市| 明星| 邵武市| 抚宁县| 南宁市| 宁武县| 锦屏县| 吴江市| 鄂州市| 牟定县| 昌黎县| 新巴尔虎右旗| 谢通门县| 托克逊县| 灯塔市| 兴化市| 长泰县| 隆安县| 沂南县| 淮滨县| 吉安市| 光泽县| 新绛县| 安康市| 肥东县| 石柱| 古蔺县| 衡南县| 临夏市| 岳阳县| 磐石市| 合川市| 门头沟区| 吉安市| 治县。|