java mysbatis select_MyBatis SELECT基本查詢實現方法詳解

1、返回一個LIST

select * from tbl_employee where last_name like #{lastName}

2、將查詢記錄封裝為一個Map

select * from tbl_employee where id=#{id}

返回一條記錄的map;key就是列名,值就是對應的值。

3、多條記錄封裝為一個map

@MapKey("id")

public Map getEmpByLastNameLikeReturnMap(String lastName);

select * from tbl_employee where last_name like #{lastName}

Map:鍵是這條記錄的主鍵,值是記錄封裝后的javaBean。

@MapKey:告訴mybatis封裝這個map的時候使用哪個屬性作為map的key。

4、多條件查詢

public Employee getEmpByIdAndLastName(@Param("id")Integer id,@Param("lastName")String lastName);

select * from tbl_employee where id = #{id} and last_name=#{lastName}

@Param("id")標注查詢條件的key,查詢條件都會封裝為map。id為key,value為參數所對應的值。

5、插入操作(自增主鍵mysql)

useGeneratedKeys="true" keyProperty="id" databaseId="mysql">

insert into tbl_employee(last_name,email,gender)

values(#{lastName},#{email},#{gender})

獲取自增主鍵的值:

mysql支持自增主鍵,自增主鍵值的獲取,mybatis也是利用statement.getGenreatedKeys();

useGeneratedKeys="true";使用自增主鍵獲取主鍵值策略

keyProperty;指定對應的主鍵屬性,也就是mybatis獲取到主鍵值以后,將這個值封裝給javaBean的哪個屬性。

6、插入操作(非自增主鍵oracle)

①非自增主鍵oracle BEFORE格式推薦

select EMPLOYEES_SEQ.nextval from dual

insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL)

values(#{id},#{lastName},#{email)

②非自增主鍵oracle AFTER存在并發有可能不準確,不推薦

select EMPLOYEES_SEQ.currval from dual

insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL)

values(#{id},#{lastName},#{email})

Oracle不支持自增;Oracle使用序列來模擬自增;每次插入的數據的主鍵是從序列中拿到的值;如何獲取到這個值;

使用selectKey:

keyProperty:查出的主鍵值封裝給javaBean的哪個屬性

order="BEFORE":當前sql在插入sql之前運行

AFTER:當前sql在插入sql之后運行

resultType:查出的數據的返回值類型

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

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

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

相關文章

Git之怎么通過命令修改前面幾次提交的記錄

1 問題 我們平時用gitlab,github發現提交代碼上庫記錄寫錯了,需要修改回來。 2 解決辦法

Git客戶端TortoiseGit(Windows系統)的使用方法

本文環境: 操作系統:Windows XP SP3 Git客戶端:TortoiseGit-1.8.8.0-32bit 一、安裝Git客戶端 全部安裝均采用默認! 1. 安裝支撐軟件 msysgit: https://code.google.com/p/msysgit/downloads/list?qfullinstallerofficialgit 當前…

.Net 在容器中操作宿主機

1方案描述 在 docker 容器中想操作宿主機,一般會使用 ssh 的方式,然后 .Net 通過執行遠程 ssh 指令來操作宿主機。本文將使用 交互式 .Net 容器版 中提供的鏡像演示 .Net 在容器中如何操作宿主機。2前期準備 1. 宿主機上生成 ssh key生成 ss…

【看動漫學編程】程序員在異世界生個娃 第1篇:太極村

前言 作者文筆比較水,還請見諒。 以下內容還將使用視頻動態漫畫表現,剪輯完將會貼出鏈接。 小說劇情為劇情需要,過渡到知識點,部分篇幅可能沒有技術知識點還望諒解。 由于沒有經費支持,所以畫出來的東西是我自己用代碼…

【ArcGIS風暴】最牛逼空間數據批處理神器來了:用戶自定義工具箱GeoStorm.tbx

【Warming up】在學習和工作的過程中,作者曾寫過很多采用ArcGIS模型構建器(Model Builder)、Python代碼等批處理方法(感興趣的GISers可以去【測繪地理信息Big風暴專】欄去交流學習指導),大大的減輕了操作壓力,提高了工作效率。今天給大家展示一款神器:自定義工具箱GeoS…

2.6. PostgreSQL表之間連接

到目前為止,我們的查詢一次只訪問了一個表。查詢可以一次訪問多個表,或者用某種方式訪問一個表,而同時處理該表的多個行。一個同時訪問同一個或者不同表的多個行的查詢叫連接查詢。舉例來說,比如你想列出所有天氣記錄以及這些記錄…

Android之Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains

1 問題 用takePhoto去照相的時候特么的一打開就報這個錯誤 2020-04-09 21:33:49.124 19016-19016/com.appsinnova.android.keepshare E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.appsinnova.android.keepshare, PID: 19016java.lang.RuntimeException: Unable to …

Linux下c/c++項目代碼覆蓋率的產生方法

最近做了一系列的單元測試相關的工作,除了各種規范及測試框架以外,討論比較多的就是關于代碼覆蓋率的產生,c/c與其他的一些高級語言或者腳本語言相比較而言,例如 Java、.Net和php/python/perl/shell等,由于沒有這些高級…

C# WPF從后臺代碼生成行列可變的表格

z概述WPF常用的表格控件是DataGrid,這個控件在前臺XAML編寫的話,一般列已經固定,然后給每個列去綁定數據,但是如果我的列不固定,隨著運算結果變動呢?這時候DataGrid,就比較難實現這個需求&#…

軟件架構實踐文章鏈接

2019獨角獸企業重金招聘Python工程師標準>>> 架構 InfoQ: 又拍網架構中的分庫設計 SNS網站數據庫技術分析 - 51CTO.COM 數據庫水平切分的實現原理解析 - iBATIS - Java - JavaEye論壇 基于amoeba的mysql分布式數據庫學習(一) - Java - JavaEy…

【看動漫學編程】程序員在異世界生個娃 第2篇:外掛已準備就緒

前言 作者文筆比較水,還請見諒。 以下內容還將使用視頻動態漫畫表現,剪輯完將會貼出鏈接。 小說劇情為劇情需要,過渡到知識點,部分篇幅可能沒有技術知識點還望諒解。 由于沒有經費支持,所以畫出來的東西是我自己用代碼…

java剪切txt文件_用Java把剪切板的內容實時保存到txt

test類:提示用戶程序已啟動,提示保存位置,清空剪切板。package com.ariya.service;import com.ariya.service.impl.ClipboardServiceImpl;/*** author Ariya* 程序入口*/public class Test {public static void main(String[] args) {Clipboa…

【三維激光掃描】第一章:三維激光掃描入門基礎知識

隨著地理空間信息服務產業的快速發展,地理空間數據的要求越來越高。對地理空間數據的要求正朝著大信息量、高精度、可視化和可挖掘方向發展。地面激光雷達技術是一門新興的測繪技術,已逐漸成為廣大科研和工程技術人員全新的解決問題的手段。地面三維激光掃描技術與全站儀測量…

Android之kotlin里面本地圖片BitmapFactory.decodeFile轉bitmap失敗問題

1 問題 我們手機本地有個圖片文件比如如下 /storage/emulated/0/Android/data/package_name/cache/1586444511539.png 我們需要png轉bitmap,然后設置到ImageView里面顯示 var bitmap BitmapFactory.decodeFile(imagePath);if (bitmap null) returnelse mImagevi…

3、面向對象-繼承-多態

1、繼承子類可以繼承父類的一切,一個子類只能有一個父類,一個父類可以有多個子類//父類class Ren{public $name;public $sex;public $yuyan;function Say() {echo $this->name."正在講話!";}}//美國人的子類class America ex…

整理iOS9適配中出現的坑

一、NSAppTransportSecurity iOS9讓所有的HTTP默認使用了HTTPS,原來的HTTP協議傳輸都改成TLS1.2協議進行傳輸。直接造成的情況就是App發請求的時候彈出網絡無法連接。解決辦法就是在項目的info.plist 文件里加上如下節點: NSAppTransportSecurity - NSAl…

由c# dynamic是否裝箱引發的思考

前言前幾天在技術群里看到有同學在討論關于dynamic是否會存在裝箱拆箱的問題,我當時第一想法是"會"。至于為啥會有很多人有這種疑問,主要是因為覺得dynamic可能是因為有點特殊,因為它被稱為動態類型,可能是因為這里的動態對大家造成的誤解,認為…

【看動漫學編程】程序員在異世界生個娃 第3篇:搞不好我就是個王者

前言 作者文筆比較水,還請見諒。 以下內容還將使用視頻動態漫畫表現,剪輯完將會貼出鏈接。 小說劇情為劇情需要,過渡到知識點,部分篇幅可能沒有技術知識點還望諒解。 由于沒有經費支持,所以畫出來的東西是我自己用代碼…

PHP會話控制考察點

為什么要使用會話控制技術 HTTP協議是無狀態的,也就是說HTTP沒有一個內建的機制來維護兩個事務之間的狀態。當一個用戶完成一個請求發起第二個請求的時候,服務器無法知道這次請求是來自于上一次的客戶。而用戶登錄、購物車等,這些是需要服務器…

數據庫SQL語句學習筆記(6)-使用函數處理數據

1.SQL也可以用函數來處理數據,函數一般是在數據上執行的,為數據的轉換和處理提供了方便。但是每一個數據庫管理系統(DBMS)都有特定的函數,事實上,只有少數幾個函數被所有的DBMS等同地支持。例如&#xff0c…