MyBatis : Mapper 接口以及 Example 使用實例、詳解

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一、mapper接口中的方法解析
mapper接口中的函數及方法

方法?? ?功能說明
int countByExample(UserExample example) thorws SQLException?? ?按條件計數
int deleteByPrimaryKey(Integer id) thorws SQLException?? ?按主鍵刪除
int deleteByExample(UserExample example) thorws SQLException?? ?按條件查詢
String/Integer insert(User record) thorws SQLException?? ?插入數據(返回值為ID)
User selectByPrimaryKey(Integer id) thorws SQLException?? ?按主鍵查詢
ListselectByExample(UserExample example) thorws SQLException?? ?按條件查詢
ListselectByExampleWithBLOGs(UserExample example) thorws SQLException?? ?按條件查詢(包括BLOB字段)。只有當數據表中的字段類型有為二進制的才會產生。
int updateByPrimaryKey(User record) thorws SQLException?? ?按主鍵更新
int updateByPrimaryKeySelective(User record) thorws SQLException?? ?按主鍵更新值不為null的字段
int updateByExample(User record, UserExample example) thorws SQLException?? ?按條件更新
int updateByExampleSelective(User record, UserExample example) thorws SQLException?? ?按條件更新值不為null的字段


二、example實例解析
mybatis的逆向工程中會生成實例及實例對應的example,example用于添加條件,相當where后面的部分?
xxxExample example = new xxxExample();?
Criteria criteria = new Example().createCriteria();

方法?? ?說明
example.setOrderByClause(“字段名 ASC”);?? ?添加升序排列條件,DESC為降序
example.setDistinct(false)?? ?去除重復,boolean型,true為選擇不重復的記錄。
criteria.andXxxIsNull?? ?添加字段xxx為null的條件
criteria.andXxxIsNotNull?? ?添加字段xxx不為null的條件
criteria.andXxxEqualTo(value)?? ?添加xxx字段等于value條件
criteria.andXxxNotEqualTo(value)?? ?添加xxx字段不等于value條件
criteria.andXxxGreaterThan(value)?? ?添加xxx字段大于value條件
criteria.andXxxGreaterThanOrEqualTo(value)?? ?添加xxx字段大于等于value條件
criteria.andXxxLessThan(value)?? ?添加xxx字段小于value條件
criteria.andXxxLessThanOrEqualTo(value)?? ?添加xxx字段小于等于value條件
criteria.andXxxIn(List<?>)?? ?添加xxx字段值在List<?>條件
criteria.andXxxNotIn(List<?>)?? ?添加xxx字段值不在List<?>條件
criteria.andXxxLike(“%”+value+”%”)?? ?添加xxx字段值為value的模糊查詢條件
criteria.andXxxNotLike(“%”+value+”%”)?? ?添加xxx字段值不為value的模糊查詢條件
criteria.andXxxBetween(value1,value2)?? ?添加xxx字段值在value1和value2之間條件
criteria.andXxxNotBetween(value1,value2)?? ?添加xxx字段值不在value1和value2之間條件


三、應用舉例
1.查詢
① selectByPrimaryKey()

User user = XxxMapper.selectByPrimaryKey(100); //相當于select * from user where id = 100

② selectByExample() 和 selectByExampleWithBLOGs()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
criteria.andUsernameIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = XxxMapper.selectByExample(example);
//相當于:select * from user where username = 'wyw' and ?username is null order by username asc,email desc


注:在iBator逆向工程生成的文件XxxExample.java中包含一個static的內部類Criteria,Criteria中的方法是定義SQL 語句where后的查詢條件。

2.插入數據
①insert()

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("admin");
user.setPassword("admin")
user.setEmail("wyw@163.com");
XxxMapper.insert(user);
//相當于:insert into user(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','wyw@126.com');


3.更新數據
①updateByPrimaryKey()

User user =new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("wyw");
user.setPassword("wyw");
user.setEmail("wyw@163.com");
XxxMapper.updateByPrimaryKey(user);
//相當于:update user set username='wyw', password='wyw', email='wyw@163.com' where id='dsfgsdfgdsfgds'


②updateByPrimaryKeySelective()

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相當于:update user set password='wyw' where id='dsfgsdfgdsfgds'


③ updateByExample() 和 updateByExampleSelective()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
User user = new User();
user.setPassword("wyw");
XxxMapper.updateByPrimaryKeySelective(user,example);
//相當于:update user set password='wyw' where username='admin'

updateByExample()更新所有的字段,包括字段為null的也更新,建議使用 updateByExampleSelective()更新想更新的字段

4.刪除數據
①deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1); ?//相當于:delete from user where id=1

②deleteByExample()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);
//相當于:delete from user where username='admin'


5.查詢數據數量
①countByExample()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count = XxxMapper.countByExample(example);
//相當于:select count(*) from user where username='wyw'


---------------------?

轉自:https://blog.csdn.net/biandous/article/details/65630783?
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447840.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《學習R》筆記:科學計算器、檢查變量和工作區、向量、矩陣和數組、列表和數據框...

一、第二章 科學計算器 要檢查兩個數字是否一樣&#xff0c;要使用 all.equal() ,不要使用 &#xff0c; 符號僅用于比較兩個整型數是否存在相同 。 > all.equal(sqrt(2)^2,2) [1] TRUE > all.equal(sqrt(2) ^ 2,3) [1] "Mean relative difference: 0.5" >…

VUE 解決:Method “xxx“ has already been defined as a data property.

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.調用方法報錯&#xff1a; Method "changePage" has already been defined as a data property. 代碼寫法&#xff1a; 2…

盡早理財的8個思維

理財并不單純的是指通過技巧加經驗去讓自己手里的錢變成更多的錢&#xff0c;還包括一種思維方式。一個真正的理財高手&#xff0c;思維模式和他人不同。這些人好像天生為了賺錢而生&#xff0c;但我們在羨慕的同時可以將他們的思維拿來借鑒&#xff0c;培養適合自己的理財思維…

解決:java.lang.NoSuchMethodException: gentle.entity.User.<init>()

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 運行程序報錯&#xff1a; java.lang.NoSuchMethodException: gentle.entity.User.<init>() 2. 原因和解決&#xff1a; 我…

【轉】R函數-diag()函數

版權聲明&#xff1a;本文為博主原創文章&#xff0c;遵循 CC 4.0 BY-SA 版權協議&#xff0c;轉載請附上原文出處鏈接和本聲明。本文鏈接&#xff1a;https://blog.csdn.net/lili_wuwu/article/details/51909229 diag()提取或替換一個矩陣的對角線,或構造一個對角矩陣。 語法&…

賺錢的8大定律

賺錢一定有方法&#xff0c;每個人有志于創業的人都應該分析一下&#xff0c;什么生意你最適合做&#xff0c;什么事情你最擅長&#xff0c;自然就是你容易收獲的。 8條賺錢定律&#xff1a; 賺錢第一定律&#xff1a;你要做羊&#xff0c;還是做狼&#xff1f; 永遠是10%的人…

C# 模擬Windows鍵盤事件

發送鍵盤消息 1 [DllImport("user32.dll", EntryPoint "keybd_event", SetLastError true)] 2 public static extern void keybd_event( 3 byte bVk, //虛擬鍵值 4 byte bScan,// 一般為0 5 int…

js 驗證用戶輸入的是否為數字、檢查只能為數字

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 方法一 如果判斷輸入的是否是數字&#xff0c;如果不是數字彈出一個提示&#xff1a;簡易代碼如下&#xff1a;<body> <input …

修煉你自己

一、保持沉穩&#xff08;1&#xff09;不要隨便顯露你的情緒。&#xff08;2&#xff09;不要逢人就訴說你的困難和遭遇。&#xff08;3&#xff09;在征詢別人的意見之前&#xff0c;自己先思考&#xff0c;但不要先講。&#xff08;4&#xff09;不要一有機會就嘮叨你的不滿…

C# 動態加載資源

在xaml中控件通過綁定靜態資源StaticResource來獲取樣式Style有多種方式&#xff0c;TextBlockStyle.xaml是一個ResourceDictionary&#xff0c;包含了所需樣式 通過相對路徑引用 通過后臺代碼向當前程序的資源中動態添加&#xff0c;代碼如下&#xff1a; 1 ResourceDicti…

中醫3個不花錢的養腎方

深呼吸可通過肺腎的相互作用&#xff0c;對腎起到溫煦的效果。 腎為先天之本。如果先天不足&#xff0c;后天失養&#xff0c;就會出現腎精虧虛、腎陽虛衰、腎陰虧虛等證。男女老幼都可能腎虛&#xff1a;小兒腎虛&#xff0c;生長發育遲緩&#xff0c;智力低下;中青年腎虛&…

ACM-ICPC 2018 徐州賽區網絡預賽 I. query 樹狀數組

I. query 題目鏈接&#xff1a; Problem Description Given a permutation \(p\) of length \(n\), you are asked to answer \(m\) queries, each query can be represented as a pair \((l ,r )\), you need to find the number of pair \((i ,j)\) such that \(l \le i <…

內容分發網絡(CDN) 是什么

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 技術原理解說見另一文&#xff1a;https://blog.csdn.net/jiangyu1013/article/details/88795690 內容分發網絡 &#xff08;英語&…

7種方法讓你養出干凈的肺

世界衛生組織(WHO)近日公布的全球1081個城市采集的空氣質量數據顯示&#xff0c;空氣中可吸入顆粒物(PM10)含量最少的前50個城市幾乎被加拿大和美國包攬。中國北京&#xff0c;蘭州等城市都是重災區。生活在很多大中型城市&#xff0c;除了空氣污染外&#xff0c;香煙、油煙、工…

CDN 的作用與基本過程

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 技術原理解說也可參見另一文&#xff1a;https://blog.csdn.net/jiangyu1013/article/details/88795690 1.簡介 CDN&#xff0c;Content …

2019南昌網絡賽  I. Yukino With Subinterval 樹狀數組套線段樹

I. Yukino With Subinterval題目鏈接&#xff1a; Problem Descripe Yukino has an array \(a_1, a_2 \cdots a_n\). As a tsundere girl, Yukino is fond of studying subinterval. Today, she gives you four integers $l, r, x, y $, and she is looking for how many diffe…

健康丨汗從哪里出 病從哪里來

1.額頭出汗肝陽上亢如果額頭常常出很多汗&#xff0c;中醫認為可能是肝陽上亢引起的。建議你去醫院檢查一下甲狀腺激素分泌是否正常&#xff0c;因為這很可能是甲狀腺激素分泌過剩造成的。  醫師建議&#xff1a;平時盡量保持心境平和&#xff0c;少生氣&#xff0c;女人尤其…

CDN(內容分發網絡)技術原理

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 前言 Internet的高速發展&#xff0c;給人們的工作和生活帶來了極大的便利&#xff0c;對Internet的服務品質和訪問速度要求越來越高…

3.0 go mod之遠程倉庫搭建-代碼示例

注意事項 所謂的遠程倉庫指的是github&#xff0c;個人首次使用go mod在其他云倉庫上嘗試&#xff0c;并未成功&#xff0c;這浪費了我近2小時的時間&#xff1b; 如果你是初次嘗試&#xff0c;那么除了github的地址換一下之外&#xff0c;其他的都按照示例操作&#xff0c;比如…

視界云:CDN{內容分發網絡} 知識詳解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 CDN 全稱:Content Delivery Network或Content Ddistribute Network&#xff0c;即內容分發網絡 基本思路&#xff1a; 盡可能避開互聯…