天天看點

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

前言:使用HashMap,我們可以不寫resultMap,不寫實體類。

OK,我們直接進入實戰案例,準備一個springboot+mybatis的項目(如果沒搞懂springboot+mybatis的,可以參考我這篇​​javascript:void(0)​​)。

先準備一張表,

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

然後建立一個interface,FriendMapper.java:

package com.example.demo.mapper;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @Author : JCccc
 * @CreateTime : 2019/9/27
 * @Description :
 **/

@Mapper
public interface FriendMapper {

    int add(Map<String,Object> map);

    void deleteById(Map<String,Object> map);

    Map<String, Object> queryById(Map<String,Object> map);

    int update(Map<String,Object> map);


}      

然後是service,FriendService.java:

package com.example.demo.service;

import java.util.List;
import java.util.Map;

/**
 * @Author : JCccc
 * @CreateTime : 2019/9/27
 * @Description :
 **/
public interface FriendService {


    int add(Map<String,Object> map);

    void deleteById(Map<String,Object> map);

    Map<String, Object> queryById(Map<String,Object> map);

    int update(Map<String,Object> map);
}      

接着是FriendServiceImpl.java:

package com.example.demo.service.impl;

import com.example.demo.mapper.FriendMapper;
import com.example.demo.service.FriendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @Author : JCccc
 * @CreateTime : 2019/9/27
 * @Description :
 **/
@Service
public class FriendServiceImpl implements FriendService {
   @Autowired
    FriendMapper friendMapper;
    @Override
    public int add(Map<String,Object> map) {
        return friendMapper.add(map);
    }

    @Override
    public void deleteById(Map<String,Object> map) {
        friendMapper.deleteById(map);
    }

    @Override
    public Map<String, Object> queryById(Map<String,Object> map) {
        return  friendMapper.queryById(map);
    }

    @Override
    public int update(Map<String,Object> map) {
        return friendMapper.update(map);
    }
}      

 然後是xml,FriendMapper.xml:

<?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.example.demo.mapper.FriendMapper" >


   <insert id="add" useGeneratedKeys="true" keyProperty="id" keyColumn="id"
          parameterType="java.util.HashMap">
        insert into
        friend(id,name,age,nickName)
        values (#{id},#{name},#{age},#{nickName})
    </insert>



    <select id="queryById" parameterType="java.util.HashMap"
            resultType="java.util.HashMap">
       select *
       from friend
       where id=#{id}
    </select>

    <update id="update" useGeneratedKeys="true" keyProperty="id" keyColumn="id"
            parameterType="java.util.HashMap">
      update friend
      set  name=#{name},age=#{age},nickName=#{nickName}
      where id=#{id}
    </update>


    <delete id="deleteById" parameterType="java.util.HashMap">
        delete
        from friend
        where id=#{id}
    </delete>



</mapper>      

最後是寫接口進行測試,

添加接口:

@GetMapping("/add")
    public String addFriend(){
     Map map=new HashMap();
     map.put("name","JCccc");
     map.put("age",12);
     map.put("nickName","Migrant worker");
     int result = friendServiceImpl.add(map);
     Object id = map.get("id");
     System.out.println("id:  "+id);
     return "影響行數為:"+result+"\n傳回主鍵是:"+id;
 }      

調用接口: 

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

 資料庫:

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

剩下的查詢,修改,删除接口,測試:

查詢接口:

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

調用接口:

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

修改接口:

@GetMapping("/update")
    public String updateFriend(){
        Map map=new HashMap();
        map.put("id",7);
        map.put("name","update");
        map.put("age",12);
        map.put("nickName","update");
        int result = friendServiceImpl.update(map);
        Object id = map.get("id");
        return "影響行數為:"+result+"\n傳回主鍵是:"+id;
    }      

調用接口:

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

資料庫:

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

删除接口:

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

    }      

調用:

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

繼續閱讀