欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Spring jdbcTemplate應用(三)

系統 2225 0

在這篇文章里介紹用 JdbcTemplate進行數據庫插入操作,包括對blob或clob字段的插入 ?


還有對blob字段的取出操作。 ?


1.使用 JdbcTemplate往數據庫里插入數據,其中包含blob字段。 ?

Java代碼 ? ? 收藏代碼
  1. public ? boolean ?doSubmitWeekly( final ?WeeklyVO?weeklyVO)??
  2. ???????????? throws ?DataAccessException?{??
  3. ????????StringBuffer?sql?=? new ?StringBuffer();??
  4. ????????sql.append( "INSERT?INTO?WEEKLY_INFO_T?T?(T.F_START_TIME,?" );??
  5. ????????sql.append( "?????????????????????????????????T.F_END_TIME,?" );??
  6. ????????sql.append( "?????????????????????????????????T.F_DATE,?" );??
  7. ????????sql.append( "?????????????????????????????????T.F_OWNER,?" );??
  8. ????????sql.append( "?????????????????????????????????T.F_ANNEX_NAME,?" );??
  9. ????????sql.append( "?????????????????????????????????T.F_ANNEX)?" );??
  10. ????????sql.append( "??VALUES???(TO_DATE?(?,?'yyyy-mm-dd'),?" );??
  11. ????????sql.append( "????????????TO_DATE?(?,?'yyyy-mm-dd'),?" );??
  12. ????????sql.append( "????????????TO_DATE?(to_char(sysdate,'yyyy-mm-dd'),?'yyyy-mm-dd'),?" );??
  13. ????????sql.append( "?????????????,?" );??
  14. ????????sql.append( "?????????????,?" );??
  15. ????????sql.append( "?????????????)?" ); //blob字段 ??
  16. ??
  17. ????????Boolean?flag?=? new ?Boolean( false );??
  18. ??
  19. ???????? try ?{??
  20. ????????????flag?=?(Boolean)? this .getJdbcTemplate().execute(sql.toString(),??
  21. ???????????????????? new ?MyPreparedStatementCallback(weeklyVO));??
  22. ????????}? catch ?(Exception?e)?{??
  23. ????????????e.printStackTrace();??
  24. ????????}??
  25. ???????? return ?flag.booleanValue();??
  26. ????}??




MyPreparedStatementCallback類的實現 ?

Java代碼 ? ? 收藏代碼
  1. /** ?
  2. ?*?上傳附件回調操作類 ?
  3. ?*/ ??
  4. private ? class ?MyPreparedStatementCallback? implements ??
  5. ????????PreparedStatementCallback?{??
  6. ??
  7. ???? private ?WeeklyVO?weeklyVO;??
  8. ??
  9. ???? public ?MyPreparedStatementCallback(WeeklyVO?weeklyVO)?{??
  10. ???????? this .weeklyVO?=?weeklyVO;??
  11. ????}??
  12. ??
  13. ???? public ?Object?doInPreparedStatement(PreparedStatement?pstm)??
  14. ???????????? throws ?SQLException,??
  15. ????????????org.springframework.dao.DataAccessException?{??
  16. ??
  17. ????????pstm.setObject( 1 ,? this .weeklyVO.getStartTime());??
  18. ????????pstm.setObject( 2 ,? this .weeklyVO.getEndTime());??
  19. ????????pstm.setObject( 3 ,? this .weeklyVO.getOwner());??
  20. ????????pstm.setObject( 4 ,? this .weeklyVO.getAnnexName());??
  21. ???????? try ?{??
  22. ???????????? //?操作Blob?---這里WeeklyVO類的annex屬性是File類型 ??
  23. ????????????pstm.setBinaryStream( 5 ,? new ?FileInputStream( this .weeklyVO??
  24. ????????????????????????????.getAnnex()),?( int )?( this .weeklyVO.getAnnex()).length());??
  25. ???????????? //?操作Clob ??
  26. ???????????? /** ?
  27. ????????????pstm.setCharacterStream(5,?new?FileReader(this.weeklyVO ?
  28. ????????????????????????????.getAnnex()),?(int)?(this.weeklyVO.getAnnex()).length()); ?
  29. ????????????*/ ??
  30. ????????}? catch ?(FileNotFoundException?e)?{??
  31. ????????????e.printStackTrace();??
  32. ???????????? return ? new ?Boolean( false );??
  33. ????????}??
  34. ??
  35. ???????? try ?{??
  36. ????????????pstm.execute();??
  37. ???????????? return ? new ?Boolean( true );??
  38. ????????}? catch ?(Exception?e)?{??
  39. ????????????e.printStackTrace();??
  40. ???????????? return ? new ?Boolean( false );??
  41. ????????}??
  42. ????}??
  43. ??
  44. }??




2 .使用 JdbcTemplate讀取數據庫中的blob字段信息(把blob內容寫到臨時目錄) ?

Java代碼 ? ? 收藏代碼
  1. public ?Map?doSelectWeekly(String?weeklyId)? throws ?DataAccessException?{??
  2. ????????String?sql?=? "select?t.f_annex_name,t.f_annex?from?weekly_info_t?t" ??
  3. ????????????????+? "?where?t.f_weekly_id?=?" ?+?weeklyId;??
  4. ????????Map?map?=? new ?HashMap();??
  5. ????????map?=?(Map)? this .getJdbcTemplate().execute(sql,??
  6. ???????????????? new ?CallableStatementCallback()?{??
  7. ??
  8. ???????????????????? public ?Object?doInCallableStatement(CallableStatement?stmt)??
  9. ???????????????????????????? throws ?SQLException,??
  10. ????????????????????????????org.springframework.dao.DataAccessException?{??
  11. ????????????????????????ResultSet?rs?=?stmt.executeQuery();??
  12. ????????????????????????Map?map?=? new ?HashMap();??
  13. ????????????????????????InputStream?inputStream?=? null ;??
  14. ????????????????????????String?name?=? "" ;??
  15. ????????????????????????String?path?=?System.getProperty( "java.io.tmpdir" )??
  16. ????????????????????????????????+? "/" ;??
  17. ????????????????????????File?temp?=? new ?File(path);??
  18. ???????????????????????? if ?(!temp.exists())?{??
  19. ????????????????????????????temp.mkdir();??
  20. ????????????????????????}??
  21. ????????????????????????temp?=? null ;??
  22. ??
  23. ???????????????????????? while ?(rs.next())?{??
  24. ????????????????????????????inputStream?=?rs.getBinaryStream( "f_annex" ); //?讀取blob ??
  25. ??
  26. ???????????????????? //Reader?fileReader?=?rs.getCharacterStream("f_annex");//?讀取clob ??
  27. ????????????????????????????name?=?rs.getString( "f_annex_name" );??
  28. ????????????????????????????path?+=?name;??
  29. ????????????????????????????File?fileOutput?=? new ?File(path);??
  30. ??
  31. ????????????????????????????FileOutputStream?fo;??
  32. ???????????????????????????? try ?{??
  33. ????????????????????????????????fo?=? new ?FileOutputStream(fileOutput);??
  34. ???????????????????????????????? int ?readed;??
  35. ???????????????????????????????? //?將附件寫到臨時目錄里 ??
  36. ???????????????????????????????? while ?((readed?=?inputStream.read())?!=?- 1 )?{??
  37. ????????????????????????????????????fo.write(readed);??
  38. ????????????????????????????????}??
  39. ????????????????????????????????fo.close();??
  40. ????????????????????????????}? catch ?(FileNotFoundException?e)?{??
  41. ????????????????????????????????e.printStackTrace();??
  42. ????????????????????????????}? catch ?(IOException?e)?{??
  43. ????????????????????????????????e.printStackTrace();??
  44. ????????????????????????????}??
  45. ????????????????????????}??
  46. ????????????????????????map.put( "annexName" ,?name);??
  47. ????????????????????????map.put( "filePath" ,?path);??
  48. ???????????????????????? return ?map; //返回文件名稱和文件所在路徑,供頁面下載用。 ??
  49. ????????????????????}??
  50. ??
  51. ????????????????});??
  52. ???????? return ?map;??
  53. ????}??




附:下載blob內容代碼片段(先把blob內容寫到臨時目錄在從臨時目錄下載) ?

Java代碼 ? ? 收藏代碼
  1. Map?map?=?weeklyServise.doSelectWeekly( "52" ); //參數為附件ID ??
  2. String?annexName?=?(String)?map.get( "annexName" );??
  3. String?path?=?(String)?map.get( "filePath" );??
  4. ??
  5. BufferedInputStream?bis?=? null ;??
  6. BufferedOutputStream?bos?=? null ;??
  7. OutputStream?fos?=? null ;??
  8. InputStream?fis?=? null ;??
  9. ??
  10. String?filepath?=?path;??
  11. System.out.println( "文件路徑" ?+?filepath);??
  12. java.io.File?uploadFile?=? new ?java.io.File(filepath);??
  13. //從低級流構造成高級流 ??
  14. fis?=? new ?FileInputStream(uploadFile);??
  15. bis?=? new ?BufferedInputStream(fis);??
  16. fos?=?response.getOutputStream();??
  17. bos?=? new ?BufferedOutputStream(fos);??
  18. //設置下載文件名 ??
  19. response.setHeader( "Content-disposition" ,? "attachment;filename=" ??
  20. ????????+?URLEncoder.encode(annexName,? "utf-8" ));??
  21. int ?bytesRead?=? 0 ;??
  22. byte []?buffer?=? new ? byte [ 4096 ];??
  23. while ?((bytesRead?=?bis.read(buffer,? 0 ,? 4096 ))?!=?- 1 )?{??
  24. ????bos.write(buffer,? 0 ,?bytesRead); //開始下載數據 ??
  25. }??
  26. bos.flush();??
  27. fis.close();??
  28. bis.close();??
  29. fos.close();??
  30. bos.close();??
  31. java.io.File?temp?=? new ?java.io.File(System.getProperty( "java.io.tmpdir" )+ "/" );??
  32. if (temp.isDirectory()){??
  33. ????FileUtils.deleteDirectory(temp); //刪除臨時文件夾 ??
  34. }??
  35. return ? null ;??

?

Spring jdbcTemplate應用(三)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产一区二区欧美 | 奇米狠狠色 | 奇米第四色888 | 暖暖日本在线播放 | 免费在线黄色片 | 国产成人无码AA片免费看 | 久久久久久国产精品mv | 欧美久久久 | 草草视频在线观看 | 日本xxxx18高清免费 | 天天舔天天 | 亚洲免费在线观看视频 | 日韩电影中文字幕 | 97超碰人人草 | 欧美一级黄色网 | 狠狠色狠色综合曰曰 | 九一在线观看 | 国产精品1区| 啪啪大片 | 久久久蜜桃 | 日韩a级一片 | 91香蕉视频导航 | 国产色司机在线视频免费观看 | feise.av| 欧美日韩一区二区三区在线观看 | 一级毛片aaaaaa视频免费看 | 精品久久久久久久久久久久久久 | 爱爱视频网站 | 亚洲性色成人 | 青草视频在线观看免费资源 | 羞羞的动漫在线观看 | 特黄做愛又硬又大A片视频 小视频在线看 | 91麻豆精品久久久久蜜臀 | 韩国资源视频一区二区三区 | 亚洲日韩中文字幕一区 | 亚洲福利一区福利三区 | 五月天91| 韩漫重考生漫画画免费读漫画下拉式土豪漫 | 亚洲三级视频在线观看 | 亚洲综合久久久久久888 | 天天爱夜夜操 |