日韩性视频-久久久蜜桃-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 语句的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美在线视频你懂的 | 中文字幕一区二区三区乱码不卡 | 操她视频在线观看 | 免费观看在线高清 | 亚洲成人网页 | 成人动漫免费观看 | 国产资源第一页 | 欧美色悠悠 | 亚洲午夜av在线 | 国产大屁股喷水视频在线观看 | 91色在线视频 | 8x8ⅹ国产精品一区二区二区 | av网站在线观看免费 | 人妻少妇精品一区二区三区 | 黄色录像片子 | 夜夜夜夜操 | 91精品人妻一区二区三区蜜桃2 | 欧美精品一二区 | 99久久精品无免国产免费 | 人人妻人人澡人人爽久久av | 俄罗斯av片 | 91日韩一区二区 | 极品美女穴| 欧美女人交配视频 | 四虎影院污 | 污污视频网站在线免费观看 | 人妻少妇一区二区三区 | 秘密基地电影免费版观看国语 | 国产熟妇搡bbbb搡bbbb | 久久99精品久久久久久园产越南 | 国产亚洲毛片 | 久久人人妻人人人人妻性色av | av最新网| 男人的网站在线观看 | 欧美日韩成人 | 久草国产在线观看 | 99综合网 | 五月天最新网址 | 午夜操一操 | 越南a级片 | k8经典成人理伦片 | 精品无码久久久久久久久成人 | 国产日韩欧美综合在线 | 精品无码人妻少妇久久久久久 | 在线欧美激情 | 国产男女猛烈无遮挡免费视频动漫 | 精品久久久久一区二区 | av黄色免费 | 免费看片黄色 | 欧美高清性xxxxhdvideosex | 少妇视频一区二区三区 | 人人91| 日本全黄裸体片 | 久热精品视频在线 | 91爱看| 99热这里只有精品4 精品国产黄色 | 日韩中文无 | 欧美福利一区 | 处破痛哭a√18成年片免费 | 久久久久黄色 | 精品日日夜夜 | 抱着老师的嫩臀猛然挺进视频 | juliaann办公室丝袜大战 | 青青啪啪 | 精品人妻伦一区二区三区久久 | 国产特黄毛片 | 亚洲国产日韩欧美一区二区三区 | 欧美性受xxxx黑人xyx | www.日本黄 | 中文字幕Av日韩精品 | 男人猛进女人爽的大叫 | 亚洲最大av网站 | 国产黄色大全 | 日本精品影院 | 亚洲人妖在线 | 亚洲一本在线 | 亚洲图片 自拍偷拍 | 欧美亚洲视频一区 | 国产精品久久久久影院老司 | 爱爱视频网址 | 欧美拍拍视频 | 欧美日韩国产精品成人 | 欧美黄色片网站 | 久久网av| 男女视频国产 | 嫩模啪啪 | 黑人操中国女人视频 | 操夜夜操| 天天摸天天干天天操 | 欧洲三级在线 | 在线高清观看免费 | 亚洲欧美日韩国产成人精品影院 | 天天干天天操天天玩 | 五月婷婷开心网 | 色老久久 | 日韩一区二区三区精 | 日韩欧美一二三区 | bt天堂新版中文在线地址 | 亚洲精品乱码久久久久久不卡 |