JdbcTemplate

JdbcTemplate

Spring為傳統(tǒng)的jdbc API進(jìn)行封裝,簡(jiǎn)化持久層操作,雖然jdbcTemplate很靈活,但和ORM框架相比jdbcTemplate功能就顯得力不從心了,學(xué)習(xí)jdbcTemplate是為學(xué)習(xí)ORM框架做鋪墊
ORM:對(duì)象關(guān)系映射 O:對(duì)象 R:關(guān)系 M:映射

傳入Jdbc API與Spring jdbcTemplate比較

//JDBC API
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select count(*) from COUNT student")
if(resultSet.next()){
    Integer count = resultSet.getInt("COUNT");
}

//JDBC Template
Integer count = jdbcTemplate.queryForObject("select count(*) from student",Integer.class);

使用Spring-jdbcTemplate準(zhǔn)備

  • 引入jar包(Spring基礎(chǔ)jar包、aop、jdbc、tx、MySql驅(qū)動(dòng))
  • 配置dataSource源
<!--引入本地?cái)?shù)據(jù)庫(kù)配置-->
<context:property-placeholder location="classpath:jdbc.properties" />

<!--配置數(shù)據(jù)源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql:///selection_course?useUnicode=true&amp;characterEncoding=utf-8"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>
  • 配置JdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>

JdbcTemplate基本使用

  • execute方法
  • update與batchUpdate方法
  • query與queryXXX方法
  • call方法

execute對(duì)數(shù)據(jù)庫(kù)DDR操作
update操作單個(gè)增刪改

//API
int update(String sql,Object[] args)
int update(String sql,Objcet... args)

batchUpdate批量增刪改

//API
int[] batchUpdate(String[] sql)
int[] batchUpdate(String sql,List<Object[]>)

單個(gè)簡(jiǎn)單查詢

T queryForObjcet(String sql,Class<T> type)
T queryForObjcet(String sql,Object[] args,Class<T> type)
T queryForObjcet(String sql,Class<T> type,Object... arg)

獲取多個(gè)

//API
List<T> queryForList(String sql,Class<T> type)
List<T> queryForList(String sql,Object[] args,Class<T> type)
List<T> queryForList(String sql,Class<T> type,Object... arg)

查詢復(fù)雜對(duì)象(封裝為Map)
獲取單個(gè)

Map queryForMap(String sql)
Map queryForMap(String sql,Objcet[] args)
Map queryForMap(String sql,Object... arg)

獲取多個(gè)

List<Map<String,Object>> queryForList(String sql)
List<Map<String,Object>> queryForList(String sql,Obgject[] args)
List<Map<String,Object>> queryForList(String sql,Obgject... arg)

查詢復(fù)雜對(duì)象(封裝為實(shí)體對(duì)象)

Spring jdbcTemplate是通過(guò)實(shí)現(xiàn)org.springframework.jdbc.core.RowMapper這個(gè)接口來(lái)完成對(duì)entity對(duì)象映射
獲取一個(gè)

T queryForObject(String sql,RowMapper<T> mapper)
T queryForObject(String sql,object[] args,RowMapper<T> mapper)
T queryForObject(String sql,RowMapper<T> mapper,Object... arg)

獲取多個(gè)

List<T> query(String sql,RowMapper<T> mapper)
List<T> query(String sql,Object[] args,RowMapper<T> mapper)
List<T> query(String sql,RowMapper<T> mapper,Object... arg)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是我自己在秋招復(fù)習(xí)時(shí)的讀書筆記,整理的知識(shí)點(diǎn),也是為了防止忘記,尊重勞動(dòng)成果,轉(zhuǎn)載注明出處哦!如果你也喜歡,那...
    波波波先森閱讀 12,444評(píng)論 6 86
  • Spring JdbcTemplate的實(shí)現(xiàn)原理 JDBC已經(jīng)能夠滿足大部分用戶最基本的對(duì)數(shù)據(jù)庫(kù)的需求,但是在使用...
    OzanShareing閱讀 8,938評(píng)論 0 2
  • 大家好,我是IT修真院上海分院第02期學(xué)員,一枚正直善良的Java程序員。 今天給大家分享一下,修真院官網(wǎng)task...
    idiot丶偉偉閱讀 5,880評(píng)論 0 2
  • 人生,就是一種操蛋的生活,在這種生活中,如果你不能學(xué)會(huì)去爬的更高一點(diǎn),終究就會(huì)被別人給踩著,一旦你被踩著踩著踩習(xí)慣...
    燕落流沙閱讀 203評(píng)論 0 0
  • 喝完一些酒之后,小小并沒(méi)有醉。回宿舍洗了一次熱水澡之后,絲毫沒(méi)有睡意,反而更加清醒。因?yàn)樗肋€有一些事情沒(méi)有完成...
    怡萩閱讀 495評(píng)論 0 3

友情鏈接更多精彩內(nèi)容