更新時(shí)間:2023年01月29日11時(shí)10分 來(lái)源:傳智教育 瀏覽次數(shù):
QueryRunner類(lèi)簡(jiǎn)化了執(zhí)行SQL語(yǔ)句的代碼,它與ResultsetHandler組合在一起就能完成大部分的數(shù)據(jù)庫(kù)操作,大大減少編碼量。
QueryRunner類(lèi)提供了兩個(gè)構(gòu)造方法,一個(gè)是默認(rèn)的構(gòu)造方法,一個(gè)是需要javax.sql.DataSource作為參數(shù)的構(gòu)造方法。因此,在不用為一個(gè)方法提供一個(gè)數(shù)據(jù)庫(kù)連接的情況下,提供給構(gòu)造器的DataSource就可以用來(lái)獲得連接。但是,在使用JDBC操作數(shù)據(jù)庫(kù)時(shí),需要使用Connection對(duì)象對(duì)事務(wù)進(jìn)行管理,因此如果需要開(kāi)啟事務(wù)就需要使用不帶參數(shù)的構(gòu)造方法。針對(duì)不同的數(shù)據(jù)庫(kù)操作,QueryRunner類(lèi)提供了不同的方法,具體如下。
該方法用于執(zhí)行查詢(xún)操作,其中,參數(shù)params表示一個(gè)對(duì)象數(shù)組,該數(shù)組中每個(gè)元素的值都被用來(lái)作為查詢(xún)語(yǔ)句的置換參數(shù)。需要注意的是,該方法會(huì)自動(dòng)處理PreparedStatement和ResultSet的創(chuàng)建和關(guān)閉。
值得一提的是,QueryRunner中還有一個(gè)方法是query(Connection conn,String sql,Object[]params,ResultSetHandler rsh)。該方法與上述方法唯一不同的地方就是參數(shù)的位置。Java1.5增加了新特性:可變參數(shù)??勺儏?shù)適用于參數(shù)個(gè)數(shù)不確定,類(lèi)型確定的情況,Java把可變參數(shù)當(dāng)作數(shù)組處理。但是,可變參數(shù)必須位于最后一項(xiàng),所以此方法已過(guò)期。
該方法用于執(zhí)行查詢(xún)操作,與第一個(gè)方法相比,它不需要將Connection對(duì)象傳遞給方法,它可以從提供構(gòu)造方法的數(shù)據(jù)源DataSource或使用的setDataSource()方法中獲得連接。
該方法用于執(zhí)行一個(gè)不需要置換參數(shù)的查詢(xún)操作。
該方法用來(lái)執(zhí)行插入、更新或者刪除操作,其中,參數(shù)params表示SQL語(yǔ)句中的置換參數(shù)。
該方法用于執(zhí)行插入、更新或者刪除操作,它不需要置換參數(shù)。
北京校區(qū)