MyBatis傳入多個(gè)參數(shù)時(shí)parameterType的寫法
MyBatis傳入多個(gè)參數(shù)時(shí)parameterType寫法
方法1:對(duì)象
1.保證類里有構(gòu)造函數(shù)
public Student(Integer SID, String sname, String ssex, Integer sage) { ? ? ? ? this.SID = SID; ? ? ? ? Sname = sname; ? ? ? ? Ssex = ssex; ? ? ? ? Sage = sage; ? ? }
2.接口里方法傳對(duì)象
public ?int insertStudent(Student student);
3.Student Mapper.xml里
?<insert id="insertStudent" ?parameterType="com.tulun.maventest.pojo.Student" > ? ? ? ? insert into ?student(SID, Sname, Sage, Ssex) ?values (#{SID}, #{Sname} ?,#{Sage}, #{Ssex} ) ? ? </insert>
4.MyBatisDemo的insertStudent() 里
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); Student student=new Student(10,"小明","男",24); System.out.println(mapper.insertStudent(student)); sqlSession.commit();//事務(wù)
方法2:Map
原理是將參數(shù)放到HashMap里,傳一個(gè)Map對(duì)象,通過鍵值對(duì)的形式獲取
1.xml文件
?<update id="updateSnameById" ?parameterType="Map" > ? ? ? ? update Student set sname = #{sname} where sid = #{sid} ? ? </update>
2.接口
public int updateSnameById(Map map);
3.test.java里
Map<String,String> map=new HashMap<String,String>(); ? ? ? ? ? ? ? ? map.put("sid","4"); ? ? ? ? ? ? ? ? map.put("sname","劉能"); ? ? ? ? ? ? ? ? System.out.println(mapper.updateSnameById(map)); ? ? ? ? ? ? ? ? ? sqlSession.commit();//
方法3:@Param()
在接口里面該方法的參數(shù)前面加注解
1.接口
public int updateSnameById(@Param(value="sid")Integer sid,@Param(value="sname") String sname);
2.xml文件
<update id="updateSnameById" ?parameterType="com.tulun.maventest.pojo.Student" > ? ? ? ? update Student set sname = #{sname} where sid = #{sid} ? ? </update>
3.test.java
System.out.println(mapper.updateSnameById(4, "劉心晶")); sqlSession.commit();//事務(wù)
MyBatis傳入多個(gè)參數(shù) 批量更新
Service調(diào)用
Map<String, Object> params = new HashMap<>(); List<Long> ids = new ArrayList<>(); Long donwCnt = 20L; params.put("ids", ids); params.put("downCnt", donwCnt); boolean result = userMapper.batchUpdateByIds(params);
Mapper 方法
boolean batchUpdateByIds(Map<String, Object> params) throws Exception;
Xml內(nèi)容
<update id="batchUpdateByIds" ?parameterType="java.util.Map" > ? ? update user ? ? <set> ? ? ? ? down_cnt = #{downCnt} ? ? ? ? where id in ? ? ? ? <foreach collection="ids" index="index" item="item" open="(" separator="," close=")" > ? ? ? ? ? ? #{item} ? ? ? ? </foreach> ? ? </set> </update>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)的讀寫分離操作
讀寫分離的作用是為了緩解寫庫(kù),也就是主庫(kù)的壓力,但一定要基于數(shù)據(jù)一致性的原則,就是保證主從庫(kù)之間的數(shù)據(jù)一定要一致,這篇文章給大家介紹SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)的讀寫分離操作,感興趣的朋友跟隨小編一起看看吧2024-03-03idea 訪問html頁面端口號(hào)顯示的是63342而不是8080
這篇文章主要介紹了idea 訪問html頁面端口號(hào)顯示的是63342而不是8080,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08SpringBoot如何實(shí)現(xiàn)starter原理詳解
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)starter原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06SpringBoot中的ThreadLocal保存請(qǐng)求用戶信息的實(shí)例demo
線程局部變量,創(chuàng)建一個(gè)線程變量后,針對(duì)這個(gè)變量可以讓每個(gè)線程擁有自己的變量副本,每個(gè)線程是訪問的自己的副本,與其他線程的相互獨(dú)立,本文介紹SpringBoot中的ThreadLocal保存請(qǐng)求用戶信息,需要的朋友可以參考下2024-05-05Mybatis批量插入更新xml方式和注解方式的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Mybatis批量插入更新xml方式和注解方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法
本文主要介紹了maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08SpringBoot利用限速器RateLimiter實(shí)現(xiàn)單機(jī)限流的示例代碼
本文主要介紹了SpringBoot利用限速器RateLimiter實(shí)現(xiàn)單機(jī)限流的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法
這篇文章主要介紹了Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法,結(jié)合具體實(shí)例形式分析了xstream包用于轉(zhuǎn)換xml文件的具體使用技巧,需要的朋友可以參考下2017-05-05