在mybatis中如何將Map作為參數(shù)
在mybatis中將Map作為參數(shù)
在接口中聲明方法并把參數(shù)設(shè)為Map集合
package com.dao;
import com.pojo.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface UserMapper {
int addUser11(Map<String,Object> map);
}在實(shí)現(xiàn)類中給Map賦值
package com.dao;
import com.pojo.User;
import com.uitl.BaseDaoUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserMapperTest {
@Test
public void addUser11(){
SqlSession sqlSession = BaseDaoUtil.openSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String,Object> map = new HashMap<>();
map.put("id",9);
map.put("userName","阿峰");
map.put("pwd","1231321");
int i = mapper.addUser11(map);
if (i ==0 ){
System.out.println("失敗");
}else {
System.out.println("添加成功");
}
sqlSession.close();
}
}
三,在映射的 SQL 語句文件中編寫相應(yīng)的SQL語句
<?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.dao.UserMapper">
<insert id="addUser11" parameterType="map">
insert into user (id,userName,pad ) values (#{id},#{userName},#{pwd});
</insert>
</mapper>其中 parameterType 應(yīng)為map 因?yàn)槭莔ybatis自動生成好的別名
mybatis遇到多個(gè)參數(shù)時(shí),使用map
我們的實(shí)體類,或者數(shù)據(jù)庫中的表,字段或者參數(shù)過多,我們應(yīng)當(dāng)考慮使用Map!
//萬能的Map
int addUser2(Map<String,Object> map);
mapper.xml
<!--對象中的屬性,可以直接取出來 傳遞map的key-->
<insert id="addUser" parameterType="map">
insert into mybatis.user (id, pwd) values (#{userid},#{passWord});
</insert>
Test
@Test
public void addUser2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<String, Object>();
map.put("userid",5);
map.put("passWord","2222333");
mapper.addUser2(map);
sqlSession.close();
}
注意:
- Map傳遞參數(shù),直接在sql中取出key即可! 【parameterType=“map”】
- 對象傳遞參數(shù),直接在sql中取對象的屬性即可!【parameterType=“Object”】
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java關(guān)鍵字volatile知識點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Java關(guān)鍵字volatile知識點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-01-01
IntelliJ IDEA 2020.3 重大特性(新功能一覽)
這篇文章主要介紹了IntelliJ IDEA 2020.3 重大特性(新功能一覽),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Maven如何構(gòu)建可執(zhí)行的jar包(包含依賴jar包)
這篇文章主要介紹了Maven如何構(gòu)建可執(zhí)行的jar包(包含依賴jar包) ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
Spring Boot應(yīng)用啟動時(shí)自動執(zhí)行代碼的五種方式(常見方法)
Spring Boot為開發(fā)者提供了多種方式在應(yīng)用啟動時(shí)執(zhí)行自定義代碼,這些方式包括注解、接口實(shí)現(xiàn)和事件監(jiān)聽器,本文我們將探討一些常見的方法,以及如何利用它們在應(yīng)用啟動時(shí)執(zhí)行初始化邏輯,感興趣的朋友一起看看吧2024-04-04

