Springboot 在Mybatis中使用HashMap进行增删查改

分手后的思念是犯贱 2023-08-17 15:44 91阅读 0赞

前言:使用HashMap,我们可以不写resultMap,不写实体类。

OK,我们直接进入实战案例,准备一个springboot+mybatis的项目(如果没搞懂springboot+mybatis的,可以参考我这篇https://blog.csdn.net/qq_35387940/article/details/88048830)。

先准备一张表,

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1Mzg3OTQw_size_16_color_FFFFFF_t_70

然后新建一个interface,FriendMapper.java:

  1. package com.example.demo.mapper;
  2. import org.apache.ibatis.annotations.Mapper;
  3. import java.util.List;
  4. import java.util.Map;
  5. /**
  6. * @Author : JCccc
  7. * @CreateTime : 2019/9/27
  8. * @Description :
  9. **/
  10. @Mapper
  11. public interface FriendMapper {
  12. int add(Map<String,Object> map);
  13. void deleteById(Map<String,Object> map);
  14. Map<String, Object> queryById(Map<String,Object> map);
  15. int update(Map<String,Object> map);
  16. }

然后是service,FriendService.java:

  1. package com.example.demo.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. /**
  5. * @Author : JCccc
  6. * @CreateTime : 2019/9/27
  7. * @Description :
  8. **/
  9. public interface FriendService {
  10. int add(Map<String,Object> map);
  11. void deleteById(Map<String,Object> map);
  12. Map<String, Object> queryById(Map<String,Object> map);
  13. int update(Map<String,Object> map);
  14. }

接着是FriendServiceImpl.java:

  1. package com.example.demo.service.impl;
  2. import com.example.demo.mapper.FriendMapper;
  3. import com.example.demo.service.FriendService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import java.util.List;
  7. import java.util.Map;
  8. /**
  9. * @Author : JCccc
  10. * @CreateTime : 2019/9/27
  11. * @Description :
  12. **/
  13. @Service
  14. public class FriendServiceImpl implements FriendService {
  15. @Autowired
  16. FriendMapper friendMapper;
  17. @Override
  18. public int add(Map<String,Object> map) {
  19. return friendMapper.add(map);
  20. }
  21. @Override
  22. public void deleteById(Map<String,Object> map) {
  23. friendMapper.deleteById(map);
  24. }
  25. @Override
  26. public Map<String, Object> queryById(Map<String,Object> map) {
  27. return friendMapper.queryById(map);
  28. }
  29. @Override
  30. public int update(Map<String,Object> map) {
  31. return friendMapper.update(map);
  32. }
  33. }

然后是xml,FriendMapper.xml:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.example.demo.mapper.FriendMapper" >
  4. <insert id="add" useGeneratedKeys="true" keyProperty="id" keyColumn="id"
  5. parameterType="java.util.HashMap">
  6. insert into
  7. friend(id,name,age,nickName)
  8. values (#{id},#{name},#{age},#{nickName})
  9. </insert>
  10. <select id="queryById" parameterType="java.util.HashMap"
  11. resultType="java.util.HashMap">
  12. select *
  13. from friend
  14. where id=#{id}
  15. </select>
  16. <update id="update" useGeneratedKeys="true" keyProperty="id" keyColumn="id"
  17. parameterType="java.util.HashMap">
  18. update friend
  19. set name=#{name},age=#{age},nickName=#{nickName}
  20. where id=#{id}
  21. </update>
  22. <delete id="deleteById" parameterType="java.util.HashMap">
  23. delete
  24. from friend
  25. where id=#{id}
  26. </delete>
  27. </mapper>

最后是写接口进行测试,

添加接口:

  1. @GetMapping("/add")
  2. public String addFriend(){
  3. Map map=new HashMap();
  4. map.put("name","JCccc");
  5. map.put("age",12);
  6. map.put("nickName","Migrant worker");
  7. int result = friendServiceImpl.add(map);
  8. Object id = map.get("id");
  9. System.out.println("id: "+id);
  10. return "影响行数为:"+result+"\n返回主键是:"+id;
  11. }

调用接口:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1Mzg3OTQw_size_16_color_FFFFFF_t_70 1

数据库:

20190927105543278.png

剩下的查询,修改,删除接口,测试:
查询接口:

  1. @GetMapping("/query/{id}")
  2. public String queryFriend(@PathVariable("id") Integer id){
  3. Map map=new HashMap();
  4. map.put("id",id);
  5. map = friendServiceImpl.queryById(map);
  6. return map.toString();
  7. }

调用接口:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1Mzg3OTQw_size_16_color_FFFFFF_t_70 2

修改接口:

  1. @GetMapping("/update")
  2. public String updateFriend(){
  3. Map map=new HashMap();
  4. map.put("id",7);
  5. map.put("name","update");
  6. map.put("age",12);
  7. map.put("nickName","update");
  8. int result = friendServiceImpl.update(map);
  9. Object id = map.get("id");
  10. return "影响行数为:"+result+"\n返回主键是:"+id;
  11. }

调用接口:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1Mzg3OTQw_size_16_color_FFFFFF_t_70 3

数据库:

2019092710593153.png

删除接口:

  1. @GetMapping("/delete/{id}")
  2. public void deleteFriend(@PathVariable("id") Integer id){
  3. Map map=new HashMap();
  4. map.put("id",id);
  5. friendServiceImpl.deleteById(map);
  6. }

调用:

20190927110012804.png

好了,到此。
这个HashMap的使用是需要选择场景的,有些场景使用起来非常舒服方便,有些场景并不然。
学以致用,致用是需要找到合适的场景用才算致用。

发表评论

表情:
评论列表 (有 0 条评论,91人围观)

还没有评论,来说两句吧...

相关阅读