MyBatis中萬能的Map

目錄

一 點睛

二 實戰


一 點睛

如果我們的實體類或者數據庫中的表,字段或參數過多,可以考慮使用Map。

Map傳遞參數,直接在sql中取出key即可。

void insertUser2(Map<String, Object> map);
parameterType="map"

對象傳遞參數,直接在sql中取對象的屬性即可。

void insertUser(User user);
parameterType="com.cakin.pojo.User"

只有一個基本類型參數的情況,可以不寫 parameterType

void deleteUser(int id);
// XML中,下面這個也可不寫
parameterType="int"  

多個參數,用Map。

二 實戰

1 Mapper層核心代碼

/**
* 功能描述:通過Map插入用戶數據
*
* @author cakin
* @date 2020/6/16
* @param map 用戶數據存在於map中
*/
void insertUser2(Map<String, Object> map);

2 XML核心代碼

<!--通過map插入,字段的名字就可以隨便取了-->
<insert id="insertUser2" parameterType="map">
    insert into user(id,name,pwd) values (#{userId},#{userName},#{password})
</insert>

3 測試代碼

@Test
public void insertUser2() {
    // 第一步,獲得sqlSession
    SqlSession sqlSession = MybatisUtil.getSqlSession();
    // 執行SQL
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("userId", 5);
    map.put("userName", "xiaohua");
    map.put("password", "123456");
    userMapper.insertUser2(map);

    // 注意這裏一定要提交
    sqlSession.commit();

    // 關閉session
    sqlSession.close();
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章