1. 程式人生 > >MyBatis的Mapper介面以及Example的例項函式及詳解

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.matchre.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(