使用jdbc template鏈接數據庫,必須提供連接數據庫所需的地址、用戶名、密碼。這些信息可以從已有的ibatis sqlclient對象中獲取。
然後從ibatis配置中獲取需要執行的sql語句。但是ibatis每次執行sql都需要有一個RequestScope和SessionScope對象,所以我們手動生成這兩個對象,傳給ibatis。
在執行PreparedStatement 之前,必須先給PreparedStatement 綁定變量
ok,PreparedStatement對象已經準備完畢,可以執行了。
數據庫返回了resultset,但是我們還需要讓ibatis幫我們把結果組裝成dto對象。
ok,大功告成,返回結果就是我們所需要的對像啦。
採用以上jdbc template 與ibatis結合的好處是,可以自己控制查詢的過程。
當查詢的數據結果比較大時,採用傳統的ibatis查詢,一般有兩種方式:分頁和不分頁。如果分頁,就需要排序,大數量的排序是比較耗時的,這樣數據庫總是在做重複的工作,增加了數據庫的壓力。如果不分頁,jvm需要緩存大量的對象,佔用大量的內存,並且可能導致內存溢出。
而查詢工作由我們自己來做的話,我們就可以只做一次查詢,並且不需要排序,可以將這個resultset對象緩存起來,每次從resultset中取一批數據,取完之後將這個對象釋放掉。這種方法的缺點是,查詢結果會在數據庫中存在比較長的時間,一段時間內,佔用內存無法釋放。