日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Ibatis学习总结7--SqlMapClient 执行 SQL 语句

發布時間:2025/7/14 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ibatis学习总结7--SqlMapClient 执行 SQL 语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SqlMapCient?類提供了執行所有?mapped?statement?的?API。這些方法如下:

1 public int insert(String statementName, Object parameterObject) 2 throws SQLException 3 4 5 6 7 public int update(String statementName, Object parameterObject) 8 throws SQLException 9 10 11 public int delete(String statementName, Object parameterObject) 12 throws SQLException 13 14 15 public Object queryForObject(String statementName, Object parameterObject) 16 throws SQLException 17 18 public Object queryForObject(String statementName, Object parameterObject, Object resultObject) throws SQLException 19 20 21 public List queryForList(String statementName, Object parameterObject) 22 throws SQLException 23 24 25 public List queryForList(String statementName, Object parameterObject, int skipResults, int maxResults) 26 throws SQLException 27 28 29 public List queryForList (String statementName, 30 31 Object parameterObject, RowHandler rowHandler) 32 33 throws SQLException 34 35 36 public PaginatedList queryForPaginatedList(String statementName, Object parameterObject, int pageSize) 37 throws SQLException 38 39 40 public Map queryForMap (String statementName, Object parameterObject, String keyProperty) 41 throws SQLException 42 43 44 public Map queryForMap (String statementName, Object parameterObject, String keyProperty, String valueProperty) 45 throws SQLException

在上面的每個方法中,Mapped??Statement??的名稱作為第一個參數。這個名稱要對應<statement>的名稱屬性。另外,第二個參數總是參數對象。如果不需要參數對象,可以為

?null。除了這些之外,上面的方法就沒有相同的了。下面簡單地介紹一下它們的不同之處。

* insert(?),update(?),delete(?)

這些方法用于數據更新(即非查詢語句)。這就是說,使用下面的查詢方法來執行數據更新操作并不是不可能。但這顯得很奇怪,并明顯依賴于?JDBC?的驅動程序。執行?update(),?返回受影響數據記錄的數目。

* queryForObject(?)

queryForObject()方法有兩個版本。一個返回查詢得到的新對象,另一個用一個事先生成?的對象作為參數。后者對于使用多個查詢為對象賦值很有用。

* queryForList(?)

queryForList()方法也有三個版本。第一個執行一個查詢并返回所有的查詢結果。第二個?允許指定跳過結果的數目(即開始點)和返回結果的最大數目。對于查詢一個數量很大的結?果集,并且不想返回所有的數據時很有用。最后一個版本的?queryForList()方法需要一個行處理器(row?handler)作為輸入參數。這?個方法可以讓您使用結果對象,而不是數據表的行和列來逐行地處理查詢結果集。這個方法?的參數除了例行的名稱和參數對象外,還包括了一個實現了?RowHandler?接口的類的實例。?RowHandler?接口只有一個方法:

public?void?handleRow?(Object?object,?List?list);對于每一行從數據庫中返回的數據,RowHandler?接口的方法都會被執行。這種處理數?據的方法,簡潔而具有擴展性。

* queryForPaginatedList(?)

對于要返回一個可以向前和向后翻頁的數據子集,queryForPaginatedList()方法很有用,?它返回一個可管理的?List??對象。通常用于只顯示一部分查詢結果的用戶界面。一個常見的?例子是,搜索引擎找到了?10000?條結果,但每次只顯示其中的?100?條。PaginatedList?接口包?含了向前和向后翻頁的方法(nextPage(),previousPage(),gotoPage()),并提供了檢查翻頁?狀態的方?法(?isFirstPage()?,?isMiddlePage()?,?isLastPage()?,?isPreviousPageAvailable()?,?getPageIndex(),getPageSize())。雖然不能從?PaginatedList?接口得到查詢結果集的總數,但?這個總數可以再執行一個簡單的語句?count()來得到。否則,PaginatedList?接口會大大的降低?性能。

* queryForMap(?)

queryForMap()方法將結果集放在一個Map?對象中,這個?Map?對象用一個傳入參數?keyProperty?作為?key?值。例如,要讀入一批?Employee?對象,您可以將這些?Employee?對象放在一個用?employeeNumber?屬性作為?key?值?的?Map?對象中。Map?對象的值可以是整個?Employee?對象,也可以是?Employee?對象的另一?個屬性,屬性的名稱由第二個參數?valueProperty?指定。例如,您可能只是需要一個?Map?對?象,用員工號作為?key?值,員工姓名作為?value?值。不要把它和用?Map?作為結果對象的概念?混淆。這個方法可以使用?Java?Bean?和?Map(或基本類型的包裝類,但不可能這樣用)作為?結果對象。

代碼實例:

例子1:執行update(insert,update,delete)

1 sqlMap.startTransaction(); 2 Product product = new Product(); product.setId (1); product.setDescription (“Shih Tzu”); 3 int rows = sqlMap.insert (“insertProduct”, product); 4 sqlMap.commitTransaction();

例子2:查詢成對象(select)?

1 sqlMap.startTransaction(); 2 Integer key = new Integer (1); 3 Product product = (Product)sqlMap.queryForObject (“getProduct”, key); sqlMap.commitTransaction();

例子3:用預賦值的結果對象查詢成對象(select)

1 sqlMap.startTransaction(); 2 Customer customer = new Customer(); sqlMap.queryForObject(“getCust”, parameterObject, customer);
sqlMap.queryForObject(“getAddr”, parameterObject, customer); sqlMap.commitTransaction();

例子4:查詢成對象List(select)

1 sqlMap.startTransaction(); 2 List list = sqlMap.queryForList (“getProductList”, null); 3 sqlMap.commitTransaction();

例子5:用結果集邊界查詢成對象List(select)?

1 sqlMap.startTransaction(); 2 List list = sqlMap.queryForList (“getProductList”, null, 0, 40); sqlMap.commitTransaction();

例子6:用RowHandler執行查詢(select)

1 public class MyRowHandler implements RowHandler { 2 public void handleRow (Object object, List list) throws SQLException { Product product = (Product) object; 3 product.setQuantity (10000); 4 sqlMap.update (“updateProduct”, product); 5 // Optionally you could add the result object to the list. 6 // The list is returned from the queryForList() method. 7 } 8 } 9 sqlMap.startTransaction(); 10 RowHandler rowHandler = new MyRowHandler(); 11 List list = sqlMap.queryForList (“getProductList”, null, rowHandler); 12 sqlMap.commitTransaction();

例子7:查詢成Paginated?List(select)

1 PaginatedList list = 2 sqlMap.queryForPaginatedList (“getProductList”, null, 10); 3 list.nextPage(); list.previousPage();

例子9:查詢成Map(select)

1 sqlMap.startTransaction(); 2 Map map = sqlMap.queryForMap (“getProductList”, null, “productCode”); 3 sqlMap.commitTransaction(); 4 Product p = (Product) map.get(“EST-93”);

注意:自動提交,當沒調用?startTransaction?的情況下,statements?會自動提交。沒必要?commit/rollback。

?

總結

以上是生活随笔為你收集整理的Ibatis学习总结7--SqlMapClient 执行 SQL 语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高清免费毛片 | 91福利在线视频 | 国产精品老熟女视频一区二区 | 亚洲一区二区观看播放 | 黄色三级图片 | 日韩色图一区 | 色综合影视 | 永久在线观看 | 日本草草视频 | 精品人妻一区二区三区免费看 | 亚洲一二三级 | 超碰一区 | 欧美一区永久视频免费观看 | 97视频一区二区三区 | 在线观看91视频 | 久久国产人妻一区二区免色戒电影 | 日本道在线观看 | 色多多视频污 | 亚洲毛片网| 国外成人性视频免费 | 精品国偷自产国产一区 | 色视频免费观看 | 国产精品成av人在线视午夜片 | 理论片高清免费理伦片 | 美人被强行糟蹋np各种play | 超碰天天干 | 国产午夜影院 | 免费处女在线破视频 | 激情都市一区二区 | 性猛交ⅹxxx富婆video | 调教亲女小嫩苞h文小说 | 蜜臀一区 | av无码久久久久久不卡网站 | 红猫大本营在线观看的 | jizz网站 | 久久新网址 | 亚洲伦理网 | 国产大奶在线 | 欧美a性| 美女二区 | 国内自拍一区 | 99热黄色 | www.国产视频| 亚洲你我色 | av2018| 高清视频在线免费观看 | 久久网亚洲 | 亚洲欧洲日本一区二区三区 | 欧美日韩一区二区三 | 亚洲欧美一二三 | 亚洲艹| 91成人毛片 | 欧美久久久久久久久久久 | 国产欧美三级 | 亚洲一区二区免费在线观看 | 少妇av在线| 免费无码国产v片在线观看 三级全黄做爰在线观看 | 男男全肉变态重口高h | 黄色三级视频在线观看 | 久久久久久国产精品免费播放 | 97伊人网| jizzjizz日本人 | 国产成人精品一区二三区四区五区 | 久久久久久久综合色一本 | 中文不卡av | 日日做夜夜爽毛片麻豆 | 欲色影音 | 精品久久99| 欧美少妇毛茸茸 | 国产欧美亚洲一区二区 | 欧美三级网站在线观看 | 96视频在线 | 久久超碰精品 | 黄色日韩视频 | 日本人妻丰满熟妇久久久久久 | 久久激情视频 | 色九九九| 国产精品每日更新 | 日韩久久久久久 | 成人小视频免费在线观看 | 国产亚洲精久久久久久无码苍井空 | 伊人999 | 波多野结衣三级视频 | 欧美高清视频一区二区三区 | 亚州av影院| 97福利在线 | 欧美视频第一页 | 影视先锋av资源 | 亚洲精品日日夜夜 | 天天激情| 日本中文字幕在线免费观看 | 亚洲电影一区二区 | 视频在线观看视频 | 操伊人| 涩涩爱影院 | 欧美色图激情小说 | 欧美精品一区二区三区四区五区 | 精品区一区二区 | 玖玖精品在线视频 |