spring整合jdbc(二)


在上次的操作中只是簡單的利用了spring容器中注入dataSource元素來建立數據庫的連接,而沒有發揮出spring框架的核心作用。這里在繼續對spring進行深入的理解:

在進行數據庫操作時,我們每次都要進行一次鏈接,一來很費時費力,二來對以后的開發起不到很好的作用。

因此這里我們借助spring對JDBC的強大支持利用JDBCTemplate類來對JDBC的控制(調用、執行、查詢、更新),JDBCTemplate的操作步驟如下:

  • 打開數據庫連接。
  • 指定在連接上執行的語句。
  • 設置要求的參數並執行語句。
  • 如需求,可以得到Reslutset,迭代返回結果,接着不管任何異常關閉Reslutset。
  • 運行每次迭代的代碼,若沒有要求迭代,只返回單個值。
  • 處理SQLException事例。
  • 處理所有活動的事物(判斷是否提交,回滾)。
  • 關閉鏈接

這里我們用到的JDBCTemplate的類函數:

query方法:查詢存數據的方法,一大堆的函數啊。我們只用到了(ArrayList<Student>) jdbcTemplate.query("select * from student", new StudentRowMapper());

update方法:一般是修改啊更新啊刪除啊操作,int update(string ,Object[],int[])string則是我們寫的sql語句了,object[]是我們在javabean中的定義的類型參數,int[]類型參數的類型。例如:jdbcTemplate.update("delete from student where id=?",new Object[]{id}, newint[]{java.sql.Types.INTEGER});

execute方法:沒有來得及看呢。

這里是現實類StudentServiceImpl方法體

其中StudentRowMapper是按照重載函數RowMapper的要求寫的:


最后的測試方法SpringJDBC:

其中為了測試重載函數的作用,加了一條語句System.out.println("您的年齡是"+student.getAge());

結果沒有取到age的值,證明了RowMapper的作用RowMapper.mapRow(ResultSet,int)方法返回的對象曾加到list上,並將List返回給調用者

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM