Mybatis如何傳入多個(gè)參數(shù)(實(shí)體類型和基本類型)
Mybatis傳入多個(gè)參數(shù)
1.ProjectController類
Integer oldUserId = getUserIdByUserName(oldUserName); ? ? ? ?? ProjectAndUser projectAndUser = new ProjectAndUser(); projectAndUser.setProjectId(project.getId()); projectAndUser.setUserId(newUserId); projectAndUser.setAccessLevel(1); projectAndUserService.update(projectAndUser, oldUserId);
2.ProjectAndUserService接口
public interface ProjectAndUserService extends BaseService<ProjectAndUser> {
? ? public boolean update(ProjectAndUser projectAndUser, Integer oldUserId);
}3.ProjectAndUserServiceImpl實(shí)現(xiàn)類
@Service
public class ProjectAndUserServiceImpl extends BaseServiceImpl<ProjectAndUser> implements ProjectAndUserService {
? ? @Autowired
? ? ProjectAndUserMapper projectAndUserMapper;
? ? @Override
? ? protected BaseMapper<ProjectAndUser> getMapper() {
? ? ? ? return projectAndUserMapper;
? ? }
?? ?public boolean update(ProjectAndUser projectAndUser, Integer oldUserId){
? ? ? ? return projectAndUserMapper.update(projectAndUser, oldUserId);
? ? }
}4.ProjectAndUserMapper接口
通過(guò)使用@Param注解,實(shí)現(xiàn)傳入多個(gè)參數(shù)
@Mapper
public interface ProjectAndUserMapper extends BaseMapper<ProjectAndUser> {
? ? public boolean update(@Param("projectAndUser") ProjectAndUser projectAndUser, @Param("oldUserId") Integer oldUserId);
}5.ProjectAndUserMapper.xml
因?yàn)閭魅氲膮?shù)包括實(shí)體類對(duì)象,因此使用實(shí)體類對(duì)象的屬性時(shí)需要采用projectAndUser.projectId的形式
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.taobao.rigel.rap.mapper.ProjectAndUserMapper">
?? ?<resultMap id="ProjectAndUserMap" type="com.taobao.rigel.rap.model.ProjectAndUser">
?? ??? ?<result column="project_id" property="projectId"/>
?? ??? ?<result column="user_id" property="userId"/>
?? ??? ?<result column="access_level" property="accessLevel"/>
?? ?</resultMap>
?? ?<update id="update">
?? ??? ?update tb_project_and_user_new set user_id=#{projectAndUser.userId} where project_id=#{projectAndUser.projectId} and user_id=#{oldUserId} and access_level=#{projectAndUser.accessLevel}
?? ?</update>
</mapper>Mybatis傳入多個(gè)參數(shù)時(shí),如何處理
方式一
通過(guò)使用索引方式,來(lái)指定想傳入的參數(shù),#{index} 索引從0開始。
DAO接口

Mybatis配置

注意:
1.由于是多參數(shù)傳入,所以不需要對(duì)parameterType進(jìn)行配置。
2.由于使用索引方式,所以在DAO接口中不需要使用@Param注解來(lái)注明參數(shù)名
方式二
通過(guò)MyBatis的注解(@Param("paramName"))方式來(lái)注明參數(shù)
DAO接口

MyBatis配置

注意:
1.同樣由于是多參數(shù)傳入,所以不需要對(duì)parameterType進(jìn)行配置。
方式三
通過(guò)Map方式傳遞多個(gè)參數(shù),map中的key的名字就是對(duì)應(yīng)xml配置中#{}中使用的那個(gè)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA Java win10環(huán)境配置的圖文教程
這篇文章主要介紹了IDEA Java win10環(huán)境配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
springboot部署linux訪問服務(wù)器資源的方法
這篇文章主要介紹了springboot部署linux訪問服務(wù)器資源,部署springboot項(xiàng)目至服務(wù)器用了幾種不同方法,文中給大家詳細(xì)介紹,需要的朋友可以參考下2019-12-12
簡(jiǎn)單了解spring cloud 網(wǎng)關(guān)服務(wù)
這篇文章主要介紹了簡(jiǎn)單了解spring cloud 網(wǎng)關(guān)服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù)
這篇文章主要介紹了SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
詳解Java編程中包package的內(nèi)容與包對(duì)象的規(guī)范
這篇文章主要介紹了Java編程中包package的內(nèi)容與包對(duì)象的規(guī)范,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12
springboot下添加全局異常處理和自定義異常處理的過(guò)程解析
在spring項(xiàng)目中,優(yōu)雅處理異常,好處是可以將系統(tǒng)產(chǎn)生的全部異常統(tǒng)一捕獲處理,自定義的異常也由全局異常來(lái)捕獲,如果涉及到validator參數(shù)校驗(yàn)器使用全局異常捕獲也是較為方便,這篇文章主要介紹了springboot下添加全局異常處理和自定義異常處理,需要的朋友可以參考下2023-12-12
關(guān)于Java中攔截mybatis并輸出完整sql語(yǔ)句的方法
這篇文章主要介紹了關(guān)于Java中攔截mybatis并輸出完整sql語(yǔ)句的方法,假如項(xiàng)目中有很多很多的SQL我們不可能一一的去修改解決。這個(gè)時(shí)候我們就需要通過(guò)mybatis攔截SQL并且最終修改SQL,需要的朋友可以參考下2023-08-08

