




全文預覽已結束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、使用JdbcTemplate的execute()方法執(zhí)行SQL語句Java代碼1. jdbcTemplate.execute(CREATETABLEUSER(user_idinteger,namevarchar(100);2、如果是UPDATE或INSERT,可以用update()方法。Java代碼1. jdbcTemplate.update(INSERTINTOUSERVALUES(2. +user.getId()+,3. +user.getName()+,4. +user.getSex()+,5. +user.getAge()+);3、帶參數(shù)的更新Java代碼1. jdbcTemplate.update(UPDATEUSERSETname=?WHEREuser_id=?,newObjectname,id);Java代碼1. jdbcTemplate.update(INSERTINTOUSERVALUES(?,?,?,?),newObjectuser.getId(),user.getName(),user.getSex(),user.getAge();4、使用JdbcTemplate進行查詢時,使用queryForXXX()等方法Java代碼1. intcount=jdbcTemplate.queryForInt(SELECTCOUNT(*)FROMUSER);Java代碼1. Stringname=(String)jdbcTemplate.queryForObject(SELECTnameFROMUSERWHEREuser_id=?,newObjectid,java.lang.String.class);Java代碼1. Listrows=jdbcTemplate.queryForList(SELECT*FROMUSER);Java代碼1. Listrows=jdbcTemplate.queryForList(SELECT*FROMUSER);2. Iteratorit=rows.iterator();3. while(it.hasNext()4. MapuserMap=(Map)it.next();5. System.out.print(userMap.get(user_id)+t);6. System.out.print(userMap.get(name)+t);7. System.out.print(userMap.get(sex)+t);8. System.out.println(userMap.get(age)+t);9. JdbcTemplate將我們使用的JDBC的流程封裝起來,包括了異常的捕捉、SQL的執(zhí)行、查詢結果的轉換等等。spring大量使用Template Method模式來封裝固定流程的動作,XXXTemplate等類別都是基于這種方式的實現(xiàn)。 除了大量使用Template Method來封裝一些底層的操作細節(jié),spring也大量使用callback方式類回調(diào)相關類別的方法以提供JDBC相關類別的功能,使傳統(tǒng)的JDBC的使用者也能清楚了解spring所提供的相關封裝類別方法的使用。JDBC的PreparedStatementJava代碼1. finalStringid=user.getId();2. finalStringname=user.getName();3. finalStringsex=user.getSex()+;4. finalintage=user.getAge();5. 6. jdbcTemplate.update(INSERTINTOUSERVALUES(?,?,?,?),7. newPreparedStatementSetter()8. publicvoidsetValues(PreparedStatementps)throwsSQLException9. ps.setString(1,id);10. ps.setString(2,name);11. ps.setString(3,sex);12. ps.setInt(4,age);13. 14. );Java代碼1. finalUseruser=newUser();2. jdbcTemplate.query(SELECT*FROMUSERWHEREuser_id=?,3. newObjectid,4. newRowCallbackHandler()5. publicvoidprocessRow(ResultSetrs)throwsSQLException6. user.setId(rs.getString(user_id);7. user.setName(rs.getString(name);8. user.setSex(rs.getString(sex).charAt(0);9. user.setAge(rs.getInt(age);10. 11. );Java代碼1. classUserRowMapperimplementsRowMapper2. publicObjectmapRow(ResultSetrs,intindex)throwsSQLException3. Useruser=newUser();4. 5. user.setId(rs.getString(user_id);6. user.setName(rs.getString(name);7. user.setSex(rs.getString(sex).charAt(0);8. user.setAge(rs.getInt(age);9. 10. returnuser;11. 12. 13. 14. publicListfindAllByRowMapperResultReader()15. Stringsql=SELECT*FROMUSER;16. returnjdbcTemplate.query(sql,newRowMapperResultReader(newUserRowMapper();17. 在getUser(id)里面使用UserRowMapperJava代碼1. publicUsergetUser(finalStringid)throwsDataAccessException2. Stringsql=SELECT*FROMUSERWHEREuser_id=?;3. finalObjectparams=newObjectid;4. Listlist=jdbcTemplate.query(sql,params,newRowMapperResultReader(newUserRowMapper();5. 6. return(User)list.get(0);7. 網(wǎng)上收集org.springframework.jdbc.core.PreparedStatementCreator 返回預編譯SQL 不能于Object一起用Java代碼1. publicPreparedStatementcreatePreparedStatement(Connectioncon)throwsSQLException2. returncon.prepareStatement(sql);3. 1.增刪改org.springframework.jdbc.core.JdbcTemplate 類(必須指定數(shù)據(jù)源dataSource)Java代碼1. template.update(insertintoweb_personvalues(?,?,?),Object); 或Java代碼1. template.update(insertintoweb_personvalues(?,?,?),newPreparedStatementSetter()匿名內(nèi)部類只能訪問外部最終局部變量2. 3. publicvoidsetValues(PreparedStatementps)throwsSQLException4. ps.setInt(index+,3);5. );org.springframework.jdbc.core.PreparedStatementSetter 接口 處理預編譯SQLJava代碼1. publicvoidsetValues(PreparedStatementps)throwsSQLException2. ps.setInt(index+,3);3. 2.查詢JdbcTemplate.query(String,Object/PreparedStatementSetter,RowMapper/RowCallbackHandler)org.springframework.jdbc.core.RowMapper 記錄映射接口 處理結果集Java代碼1. publicObjectmapRow(ResultSetrs,intarg1)throwsSQLExceptionint表當前行數(shù)2. person.setId(rs.getInt(id);3. 4. Listtemplate.query(select*fromweb_personwhereid=?,Object,RowMapper);org.springframework.jdbc.core.RowCa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓效果對員工團隊協(xié)作能力的影響研究考核試卷
- 注塑模具合成材料應用考核試卷
- 光纖照明與人眼視覺感知考核試卷
- 太陽能光伏發(fā)電系統(tǒng)效率提升途徑分析考核試卷
- 節(jié)能減排措施與成果考核試卷
- 廢棄物處理設施選址與環(huán)境影響評價研究考核試卷
- 冀教版七年級語文上冊《揀麥穗》導學案
- 計劃生育心得體會范文四篇
- 信訪穩(wěn)定工作匯報
- 基建安全管理工作交叉互查匯報材料
- GB/T 4074.1-2024繞組線試驗方法第1部分:一般規(guī)定
- MOOC 集成電路設計基礎-華中科技大學 中國大學慕課答案
- 數(shù)學分析教學課件
- 無人機技術助力船舶與港口管理
- 護理質(zhì)量指標測試附有答案
- 地震反演原理課件
- 工程業(yè)務推廣培訓方案
- 乳腺癌的術后康復指南
- 青少年抑郁癥的早期診斷與藥物治療
- JJG 443-2023燃油加油機(試行)
- 蛛網(wǎng)膜下腔出血業(yè)務查房課件
評論
0/150
提交評論