目錄
一 點睛
如果我們的實體類或者數據庫中的表,字段或參數過多,可以考慮使用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();
}