亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Spring jdbcTemplate應用(一)

系統 1689 0

JdbcTemplate中的封裝了很多實用的方法。

首先來介紹一下用 JdbcTemplate來查詢數據的方法。 ?

?

1.返回指定對象類型的List ? (query方法) ?

?

看代碼:

?

Java代碼 ? ? ? 收藏代碼
  1. public ?List?getProductModle(String?value)? throws ?DataAccessException?{??
  2. ????????List?resultList?=? new ?ArrayList();??
  3. ????????List?args?=? new ?ArrayList();??
  4. ????????String?sql?=? "select?F_CPUT_MOD_ID?as?id?,F_CPUT_MOD_NAME?as?name?from?CPUT_MOD_T" +??
  5. ???????????? "?WHERE?F_MARKET_LOCA_ID?=????order?by?F_CPUT_MOD_ID" ;??
  6. ???????? if (StringUtils.isNotEmpty(value)){??
  7. ????????????args.add(value);??
  8. ????????}??
  9. ????????resultList?=? this .getJdbcTemplate().query(sql,args.toArray(),??
  10. ???????????????????????????????????????????? new ?ProductModleRowMapper());??
  11. ???????? return ?resultList;??
  12. ????}??
  13. ???? /** ?
  14. ?????*?@author?rockjava ?
  15. ?????*?@description?封裝產品型號結果集 ?
  16. ?????*/ ??
  17. ???? private ??? class ??ProductModleRowMapper?? implements ??RowMapper{??
  18. ??
  19. ???????? public ?Object?mapRow( final ?ResultSet?rs,? final ? int ?rowNum)? throws ?SQLException?{??
  20. ????????????ProductModleVO?vo?=? new ?ProductModleVO();??
  21. ????????????vo.setProModleId((String)rs.getString( "id" ));??
  22. ????????????vo.setProModleName((String)rs.getString( "name" ));??
  23. ???????????? return ?vo;??
  24. ????????}??
  25. ??????????
  26. ????}??

?

?

?

?

這里實現了RowMapper類的mapRow方法,用來把查詢到的結果集用指定的類來封裝,最后返回一個List,List中裝著 ?

我們自定的值對象。 ?


2.返回指定類型的結果 ? (queryForObject方法)

?

Java代碼 ? ? ? 收藏代碼
  1. public ?String?getCurrentPhase(String?arg)? throws ?DataAccessException?{??
  2. ????????String?currentPhase?=? "" ;??
  3. ????????String?sql= "select?F_CURR_YEAR?from?COMPETITION_BASE_T?where?F_COMPETITION_ID=?" ;??
  4. ????????Object[]?o?={arg};???
  5. ???????? try ?{??
  6. ????????????currentPhase?=?(String) this .getJdbcTemplate().queryForObject(sql,o,?String. class );??
  7. ????????}? catch ?(Exception?e)?{??
  8. ????????????currentPhase?=? "" ;??
  9. ????????????e.printStackTrace();??
  10. ????????}??
  11. ??????????
  12. ???????? return ?currentPhase;??
  13. ????}??

?

在這個例子中,用到了queryForObject這個方法,其中第一個參數是要執行的sql,第二個參數是Object數組類型(其中裝的是sql腳本用到 ?

的參數),第三個參數就是要制定返回結果的類型(這里我定義的是String類型) ?

?


3.查詢結果返回Int類型 ? (queryForInt方法)

?

Java代碼 ? ? ? 收藏代碼
  1. public ? boolean ?doCheckCompete(Map?args)? throws ?DataAccessException?{??
  2. ????????....省略代碼??
  3. ??????????
  4. ???????? /**sql腳本用到的參數集合*/ ??
  5. ????????Object[]?args?=? new ?Object[]{??
  6. ????????????????companyId,??????????
  7. ????????????????competitionId,??????
  8. ????????????????marketType,?????????
  9. ????????????????martID,?????????????
  10. ????????????????currentPhase????????
  11. ????????};??
  12. ????????StringBuffer?sql?=? new ?StringBuffer();??
  13. ????????sql.append( "SELECT???COUNT?(?*?)?" );??
  14. ????????sql.append( "FROM???BEFOR_ORDER_T?t?" );??
  15. ????????sql.append( "WHERE???T.F_COMPANY_ID?=???" );??
  16. ????????sql.append( "?and?T.F_COMPETITION_ID=??" );??
  17. ????????sql.append( "?and?T.F_MARKET_LOCA_ID=??" );??
  18. ????????sql.append( "?and?T.F_MARKET_SCOPE_ID=??" );??
  19. ????????sql.append( "?and?T.F_CURRENT_PHASE?=???" );??
  20. ???????? int ?i= 0 ;??
  21. ????????i?=? this .getJdbcTemplate().queryForInt(sql.toString(),?args);??
  22. ???????? if (i> 0 ){??
  23. ???????????? return ? true ;??
  24. ????????}??
  25. ???????? return ? false ;??
  26. ????}??

?
這里用的是queryForInt方法返回int類型。

?

4.查詢結果返回Map類型 ? (queryForMap方法)

?

Java代碼 ? ? ? 收藏代碼
  1. String?sql?=? "select?T.F_COMPETE_ORDER_STATE?,T.F_GENERATED_ORDERS?" ?+??
  2. ???????? "from?COMPETITION_BASE_T?t?" ?+??
  3. ???????? "where?T.F_COMPETITION_ID?=??" ;??
  4. ??
  5. Map?state?=?(Map) this .getJdbcTemplate().queryForMap(sql, new ?Object[]{args});??
  6. ??
  7. String?compete_order_state?=?state.get( "F_COMPETE_ORDER_STATE" ).toString();??
  8. ??
  9. String?generated_orders?=?state.get( "F_GENERATED_ORDERS" ).toString();??

?

?

返回后的map中的鍵值對應的是select語句中的字段名字。 ?



5.查詢結果集直接返回list ? (queryForList方法)

?

Java代碼 ? ? ? 收藏代碼
  1. List?list?=? new ?ArrayList();??
  2. String?sql= "select?T.F_OFF_PERIOD,T.F_PROBABILITY?from?ORDER_OFF_PERIOD_T?t?" +??
  3. ???? "where?T.F_COMPETITION_ID=?" ;??
  4. Object[]?args?={arg};???
  5. try ?{??
  6. ????list?=? this .getJdbcTemplate().queryForList(sql,?args);??
  7. }? catch ?(Exception?e)?{??
  8. ????e.printStackTrace();??
  9. }??
  10. ...代碼省略??
  11. ??
  12. String?a?=?(String)(((Map)?list.get( 0 )).get( "F_PROBABILITY" ));??
  13. String?b?=?(String)(((Map)?list.get( 1 )).get( "F_PROBABILITY" ));??
  14. String?c?=?(String)(((Map)?list.get( 2 )).get( "F_PROBABILITY" ));??


? 返回的List中裝載的是Map對象,沒個map對象中的鍵值對應sql腳本的字段名字。

Spring jdbcTemplate應用(一)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久草精品视频在线播放 | 99久久精品国产免费 | 99视频精品全部免费免费观 | 豆国产96在线 | 亚洲 | 国产日产久久高清欧美一区 | 日韩a无吗一区二区三区 | 51国产午夜精品免费视频 | 国产一级在线视频 | 久草在线视频免费资源观看 | 四虎国产精品免费视 | 精品一区 二区三区免费毛片 | 国产成人久久精品区一区二区 | 日韩欧美亚洲一区 | a大片久久爱一级 | 国产97在线观看 | 欧美美女一区二区三区 | 999奇米| 久久国产精品吴梦梦 | 国产欧美在线观看视频 | 欧美婷婷| 夜色福利一区二区三区 | 国产99青草全福视在线 | 久久免费激情视频 | 久久香蕉综合色一综合色88 | 五月婷婷激情网 | 亚洲色婷婷综合开心网 | 欧美激情一区二区三区中文字幕 | 免费成人高清视频 | 天天干天天射天天插 | 欧美一区二区在线视频 | 婷婷网五月天天综合天天爱 | 人人干人人爱 | 午夜国产精品福利在线观看 | 国产精品国产三级国产普通话 | 成人国产亚洲 | 欧美一级www片免费观看 | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 久久综合久久综合久久综合 | 亚洲h在线观看 | 免费区欧美一级毛片精品 | 天天操夜夜噜 |