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
- 1
② 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
注:在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("[email protected]");
XxxMapper.insert(user);
//相當於:insert into user(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','[email protected]');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.更新資料
①updateByPrimaryKey()
User user =new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("wyw");
user.setPassword("wyw");
user.setEmail("[email protected]");
XxxMapper.updateByPrimaryKey(user);
//相當於:update user set username='wyw', password='wyw', email='[email protected]' where id='dsfgsdfgdsfgds'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
②updateByPrimaryKeySelective()
User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相當於:update user set password='wyw' where id='dsfgsdfgdsfgds'
- 1
- 2
- 3
- 4
- 5
③ 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'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
updateByExample()更新所有的欄位,包括欄位為null的也更新,建議使用 updateByExampleSelective()更新想更新的欄位
4.刪除資料
①deleteByPrimaryKey()
XxxMapper.deleteByPrimaryKey(1); //相當於:delete from user where id=1
- 1
②deleteByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);
//相當於:delete from user where username='admin'
- 1
- 2
- 3
- 4
- 5
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'
相關推薦
MyBatis的Mapper介面以及Example的例項函式及詳解
一、mapper介面中的方法解析mapper介面中的函式及方法方法功能說明int countByExample(UserExample example) thorws SQLException按條件計數int deleteByPrimaryKey(Integer id) th
Mybatis之Mapper介面及Example例項函式使用詳解
宣告:本文章部分內容源自於CSDN博主biandous的部落格文章,在其基礎上進行了部分修正和程式碼修改。 一、Mapper介面方法 方法 功能說明 int countByExample(UserExample example) throws SQLExce
mybatis中的mapper接口文件以及example類的實例函數以及詳解
lean boolean sql 語句 sql amp keys value per lec ##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,de
MyBatis的Mapper接口以及Example的實例函數及詳解
記錄 sele record esc BE tor ins -a IT 來源:https://blog.csdn.net/biandous/article/details/65630783 一、mapper接口中的方法解析 mapper接口中的函數及方法 方法功能說明
python 中join()函式strip() 函式和 split() 函式的詳解及例項
1、join()函式 Python中有join()和os.path.join()兩個函式,具體作用如下: join(): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成一個新的字串 語法: ‘sep’.join(seq) 引數說明 sep:分隔符。可以
python strip() 函式和 split() 函式的詳解及例項
一直以來都分不清楚strip和split的功能,實際上strip是刪除的意思;而split則是分割的意思。因此也表示了這兩個功能是完全不一樣的,strip可以刪除字串的某些字元,而split則是根據規定的字元將字串進行分割。下面就詳細說一下這兩個功能, 1 Python strip()函式 介紹
Python3中正則模組re.compile、re.match及re.search函式用法詳解
本文例項講述了Python3中正則模組re.compile、re.match及re.search函式用法。分享給大家供大家參考,具體如下: re模組 re.compile、re.match、 re.search re 模組官方說明文件 正則匹配的時候,第一個字元是 r,表示 raw string 原生字
java影象介面開發簡單例項-JButton及事件的簡單應用
import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;i
Python內建函式總結及詳解
………………吧啦吧啦……………… 2個多月來,將3.5版本中的68個內建函式,按順序逐個進行了自認為詳細的解析。為了方便記憶,將這些內建函式進行了如下分類: 數學運算(7個) 型別轉換(24個) 序列操作(8個) 物件操作(7個) 反射操作(8個) 變數操
MyBatis中通用Mapper介面以及Example的方法解析
一、通用Mapper中的方法解析 方法 功能說明 int countByExample(UserExample example) thorws SQLException 按條件計數
getchar()函式的詳解以及使用時需要注意的一些細節-C語言基礎
這篇文章要探討的是“getchar()函式的詳解以及使用時需要注意的一些細節”。涉及getchar()函式的應用和需要注意的問題。屬於C語言基礎篇(持續更新)。 在C語言的學習過程中,我們常常需要接收鍵盤的輸入,在接收鍵盤輸入的過程中涉及到的函式通常有三個getchar()
c++多型的原理 以及虛擬函式表詳解
c++中多型的原理 要實現多型,必然在背後有自己的實現機制,如果不瞭解其背後的機制,就很難對其有更深的理解。 一個多型的例子 class Person{ public: virtual void Drink() { cout << "drink water" &
Iterator、Iterable介面的使用及詳解
Java集合類庫將集合的介面與實現分離。同樣的介面,可以有不同的實現。 Java集合類的基本介面是Collection介面。而Collection介面必須實現Iterator介面。 以下圖表示集合框架的介面,java.lang以及java.util兩個包裡的。其他部分可以從左向右看,比如Collect
mybatis mapper介面以及example用法
一、mapper介面中的方法解析mapper介面中的函式及方法方法功能說明int countByExample(UserExample example) thorws SQLException按條件計數int deleteByPrimaryKey(Integer id) th
axios模擬GET請求例項及詳解
1、在my-project專案中引入axios依賴:cnpm install --save axios 2、main.js 中引入 axios: // 在 main.js 中添加了這兩行程式碼
一個簡單的SWT程式例項及詳解
讓我們從簡單的 HelloWorld 應用程式開始。 一、將SWT新增到工程的類路徑中 首先建立一個java工程。在開始使用SWT之前,需要將SWT庫檔案新增到工程的類路徑中。步驟如下: 1. 下載SWT。在Eclipse SDK的下載頁面中,提供了獨立版本的S
【Hibernate步步為營】--hql查詢過濾器及相關聚合函式查詢詳解
上篇文章討論了hql查詢中的連線查詢,它的查詢語法在功能上和sql的連線查詢是相同的,內連線查詢取得的是關係之間的笛卡爾積,外連線查詢是獲取一個關係表及與另一個關係表的合集部分,具體的使用方法見上篇文章,並在最後討論了外接命名查詢的方法。該篇文章將會對hql
網絡配置命令,綁定,接口命名以及配置文件的詳解
網絡配置命令 綁定 接口命名 配置文件一:三大命令家族當我們在centos中管理網絡時需要為網卡設置網絡屬性,有自動獲取和手動配置兩種,自動獲取需要在主機所在的網絡中至少有一臺DHCP服務器,而手動配置即靜態指定則可以使用命令或者修改配置文件,首先著重說一下使用命令,命令包括net-tools家族(ifcfg
usermod 命令參數及詳解
usermod功能說明:修改用戶帳號。語 法:usermod [-LU][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-l <帳號名稱>][-s &
微信小程序 WXML、WXSS 和JS介紹及詳解
名單 獲取 hang href 直接 last 1.2 data sub 前幾天折騰了下。然後列出一些實驗結果,供大家參考。 百牛信息技術bainiu.ltd整理發布於博客園 0. 使用開發工具模擬的和真機差異還是比較大的。也建議大家還是真機調試比較靠譜。 1. WXML(