文章目录
一、Map的使用说明
假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!
使用Map时,则不需要使用实体类了!(建议字段或者参数过多时使用!)
二、Map 实例
跳转到上篇文章:
https://blog.csdn.net/weixin_45737330/article/details/126064436
仅需修改如下代码即可!
使用Map添加信息
1、Mapper接口
//使用map来增加用户信息
int getUserAdd02(Map<String,Object> map);
2、XML
<insert id="getUserAdd02" parameterType="map">
insert into mybatis01.user(id, name, pwd)
values (#{Ku_Id},#{Ku_Name},#{Ku_Pwd});
</insert>
3、Test
@Test
public void UserAdd(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//创建HashMap对象
HashMap<String, Object> map = new HashMap<>();
map.put("Ku_Id",6);
map.put("Ku_Name","酷");
map.put("Ku_Pwd","097");
mapper.getUserAdd02(map);
System.out.println(map);
//增删改一定要提交事务
sqlSession.commit();
sqlSession.close();
}
使用Map删除信息
1、Mapper接口
//使用map来删除用户信息
int getUserDel02(Map<String,Object> map);
2、XML
<delete id="getUserDel02" parameterType="map">
delete
from mybatis01.user
where id=#{Ku_Id};
</delete>
3、Test
@Test
public void UserDelete(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<>();
map.put("Ku_Id",12);
int i = mapper.getUserDel02(map);
if(i>0){
System.out.println("删除成功!");
}else{
System.out.println("删除失败");
}
System.out.println(map);
//增删改一定要提交事务
sqlSession.commit();
sqlSession.close();
}
使用Map修改信息
1、Mapper接口
//使用map来修改用户信息
int getUserUpdate02(Map<String,Object> map);
2、XML
<update id="getUserUpdate02" parameterType="map">
update mybatis01.user
set id=#{Ku_Id},name=#{Ku_Name},pwd=#{Ku_Pwd}
where id=#{Ku_Id};
</update>
3、Test
@Test
public void UserUpd(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//创建HashMap对象
HashMap<String, Object> map = new HashMap<>();
map.put("Ku_Id",6);
map.put("Ku_Name","亚");
map.put("Ku_Pwd","3321");
mapper.getUserUpdate02(map);
System.out.println(map);
//增删改一定要提交事务
sqlSession.commit();
sqlSession.close();
}
使用Map查询信息
1、Mapper接口
//使用map来查询用户信息
List<Map> getUserSelect02(Map<String,Object> map);
2、XML
<select id="getUserSelect02" resultType="map">
select *
from mybatis01.user where id=#{kxy_Id};
</select>
3、Test
@Test
public void getUserSelect02(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//创建HashMap对象
HashMap<String, Object> map = new HashMap<>();
map.put("kxy_Id",6);
List<Map> mapList = mapper.getUserSelect02(map);
for (Map map1 : mapList) {
System.out.println(map1);
}
//增删改一定要提交事务 sqlSession.commit();
sqlSession.close();
}
总结
- Map传递参数,直接在sql中取出key即可!【parameterType=“map”】
- 对象传递参数,直接在sql中取对象的属性即可!【parameterType=“Object”】(int属性可省略不写!)
- 只有一个基本类型参数的情况下,可以直接在sql中取到! 多个参数用Map,或者注解!