返回顶部
首页 > 资讯 > 后端开发 > Python >Mybatis中使用万能的Map传参实现
  • 767
分享到

Mybatis中使用万能的Map传参实现

2024-04-02 19:04:59 767人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择。 Map的特性是键值对应的,只要确定了一个键key,那么值value可以是

编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择。

Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就可以在map内存中存入任何数据。

下面例子演示在mybatis中结合Map实现基本的增删改查

数据库表(fruits)结构:

实体类:


package com.pojo.pp1;
 
import java.math.BigDecimal;
 

public class fruits {
    private int id;
    private String name;
    private BigDecimal price;
 
    public fruits(int id, String name, BigDecimal price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public BigDecimal getPrice() {
        return price;
    }
 
    public void setPrice(BigDecimal price) {
        this.price = price;
    }
 
    @Override
    public String toString() {
        return "fruits{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

Dao接口:


package com.pojo.Dao;
 
import com.pojo.pp1.fruits;
import org.apache.ibatis.annotations.Param;
 
import java.util.List;
import java.util.Map;

public interface fruitsDao {
    
    List<fruits> getfruitsList();
 
    
    fruits getfruitsById(@Param("map") Map<String, Object> map);
 
    
    int addfruits(@Param("map") Map<String, Object> map);
 
    
    int deletefruits(@Param("map") Map<String, Object> map);
 
    
    int updatefruits(@Param("map") Map<String, Object> map);
}

Dao接口.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.pojo.Dao.fruitsDao">
    <select id="getfruitsList" resultType="fruits">
        select id,name,price from fruits
    </select>
 
    <select id="getfruitsById" parameterType="Map" resultType="fruits">
        select id,name,price from fruits where id=#{map.id};
    </select>
 
    <insert id="addfruits" parameterType="Map" >
        insert into fruits(id,name,price) values (#{map.id},#{map.name},#{map.price});
    </insert>
 
    <delete id="deletefruits" parameterType="Map" >
        delete from fruits where id=#{map.id};
    </delete>
 
    <update id="updatefruits" parameterType="Map" >
        update  fruits set name=#{map.name},price=#{map.price} where id=#{map.id}
    </update>
</mapper>

在Test类中测试运行:


package com.pojo.Dao;
 
import com.pojo.pp1.fruits;
import com.utils.mybatisUtils;
 
import org.apache.ibatis.session.sqlSession;
import org.junit.Test;
 
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class fruitsDaoTest {
    @Test
    public void getfruitsListTest() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
        List<fruits> fruitsList = fruitsDao.getfruitsList();
        for (fruits f : fruitsList) {
            System.out.println(f);
        }
        sqlSession.close();
    }
    @Test
    public void getfruitsByIdTest() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
        Map<String, Object> map = new HashMap<>();
        map.put("id", 3);
        fruits f = fruitsDao.getfruitsById(map);
        System.out.println(f);
        sqlSession.close();
    }
    @Test
    public void addfruits() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
        Map<String, Object> map = new HashMap<>();
        map.put("id", 0);
        map.put("name", "watermelon");
        BigDecimal bigDecimal= BigDecimal.valueOf(2);
        map.put("price", bigDecimal);
        int a = fruitsDao.addfruits(map);
        if (a > 0) {
            System.out.println("添加信息ok");
        }
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void deletefruits() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
        Map<String, Object> map = new HashMap<>();
        map.put("id", 3);
        int a = fruitsDao.deletefruits(map);
        if (a > 0) {
            System.out.println("删除信息ok");
        }
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void updatefruits() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
        Map<String, Object> map = new HashMap<>();
        map.put("id", 1);
        BigDecimal bigDecimal = BigDecimal.valueOf(5);
        map.put("name", "Big_apple");
        map.put("price", bigDecimal);
        int a = fruitsDao.updatefruits(map);
        if (a > 0) {
            System.out.println("修改信息ok");
        }
        sqlSession.commit();
        sqlSession.close();
    }
}

测试结果,全部都可以通过

需要注意的地方:

标记序号的地方是两种写类型的方式

第二种方式需要在项目配置中resources下mybatis-config.xml的文件中加入以下的类型别名:


<typeAliases>
        <typeAlias type="java.util.Map" alias="Map"/>
</typeAliases>

推荐用第二种方式哦

到此这篇关于Mybatis中使用万能的Map传参实现的文章就介绍到这了,更多相关Mybatis Map传参内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Mybatis中使用万能的Map传参实现

本文链接: https://lsjlt.com/news/130915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mybatis中使用万能的Map传参实现
    在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择。 Map的特性是键值对应的,只要确定了一个键key,那么值value可以是...
    99+
    2024-04-02
  • Mybatis中万能的Map有什么用
    这篇文章主要介绍Mybatis中万能的Map有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!万能的Map假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们需要考虑使用Map简单来说,map你用什么参数...
    99+
    2023-06-25
  • MyBatis实现万能Map和模糊查询
    目录万能Map模糊查询万能Map   我们在上一节博文里面将到利用Mybatis实现CRUD操作的时候,我们在数据库表中新增一条数据是这样操作的: 实体类对象...
    99+
    2024-04-02
  • 详细聊聊Mybatis中万能的Map
    目录万能的Mapdemomap 实现add usermap 实现通过id查询多个参数可以使用Map进行传参总结万能的Map 假设,我们的实体类,或者数据库中的表,字段或者参数过多,我...
    99+
    2024-04-02
  • mybatis-plus如何实现查询传入参数Map,返回List<Map>方式
    这篇文章主要介绍mybatis-plus如何实现查询传入参数Map,返回List<Map>方式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mybatis-plus 查询传入参数Map,返回List<...
    99+
    2023-06-22
  • mybatis实现获取入参是List和Map的取值
    目录前言1.项目结构 2.pom文件配置3.其他的业务代码第一种采用#符的取值法第二种方式采用$符的取值法4.总结前言 最近在工作中需要使用到mybatis,需要实现某个功...
    99+
    2024-04-02
  • Vue中如何使用Map键值对传参详析
    目录Vue里使用Map键值对传参补充:vue遍历Map,Map在vue中的使用方法总结Vue里使用Map键值对传参 问题描述:在参数传递时时候Map键值对key:value的形式进行...
    99+
    2022-11-13
    vue发送map参数 map键值对 vue中map的用法
  • MyBatis多个条件使用Map传递参数进行批量删除方式
    目录多个条件使用Map传递参数进行批量删除1、使用场景2、代码实现3、实现结果展现MyBatis 多条件批量删除的sql语句我把这次的代码贴出来,仅供参考多个条件使用Map传递参数进...
    99+
    2024-04-02
  • Mybatis中mapper的map方法怎么使用
    在MyBatis中,Mapper接口中的map方法是用来执行SQL语句并将结果映射到Java对象的。首先,在Mapper接口中定义一...
    99+
    2023-10-12
    Mybatis
  • MyBatis传入参数为List对象的实现方法
    这篇文章主要介绍MyBatis传入参数为List对象的实现方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SSM框架是JavaWeb必学的框架,虽说基本的增删改查很简单,但是当面临一些特殊情况时,有时还是会显得手足...
    99+
    2023-06-07
  • MyBatis中map的应用与模糊查询实现代码
    目录1.MyBatis中map的应用1.1.应用场景1.2.具体实现1.3.注意点!!!2.模糊查询1.MyBatis中map的应用 1.1.应用场景 假设,实体类,或者数据库中的表...
    99+
    2024-04-02
  • SpringBoot使用MyBatis时的几种传参规范示例
    目录1. 单个简单参数传递2. 匿名参数顺序传递3. 使用@Param注解传递4. 使用Map传递参数5. 使用JavaBean(POJO)传递6. 使用List、Array、Set...
    99+
    2024-04-02
  • @insert mybatis实体接收前端传递的参数怎么实现
    这篇文章主要讲解了“@insert mybatis实体接收前端传递的参数怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“@insert mybatis实体接收前端传...
    99+
    2023-07-02
  • vue3中如何使用router路由实现跳转传参
    这篇文章主要介绍了vue3中如何使用router路由实现跳转传参的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用router路由实现跳转传参文章都会有所收获,下面我们一起来看看吧。一、路由跳转首...
    99+
    2023-07-05
  • vue3中怎么使用router路由实现跳转传参
    本文小编为大家详细介绍“vue3中怎么使用router路由实现跳转传参”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中怎么使用router路由实现跳转传参”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-06
  • C++ map的简单使用实现
    map和set的底层都是通过红黑树来实现的,但并不是原生态的红黑树,而是经过改造后的红黑树。且容器都会在各自的类中添加一些独特的函数来解决各自适配的问题 map和set底层是改造后的...
    99+
    2024-04-02
  • MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合
    场景 在mapper接口层方法参数有id的数组和姓名的模糊搜索和类型的三个参数。 现在需要将这三个参数传递在动态sql的xml中接受并进行判断不为空。 然后查询数据库中记录在第一个参数id数组中的并且姓名是模糊搜索的并且类型是直接相等于的。...
    99+
    2020-04-27
    MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合 数据库入门 数据库基础教程 数据库 mysql
  • Oracle使用MyBatis中RowBounds实现分页查询功能
    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便。 使用MyBatis中的RowBounds进行分页查...
    99+
    2024-04-02
  • Golang 使用Map实现去重与set的功能操作
    假设现在有一个需求 将以下 url 保存起来,要求不重复 www.baidu.com www.sina.com.cn www.hao123.com www.baidu.com w...
    99+
    2024-04-02
  • Golang怎么使用Map实现去重与set的功能
    这篇文章将为大家详细讲解有关Golang怎么使用Map实现去重与set的功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。golang的优点golang是一种编译语言,可以将代码编译为机器代码,编译后的二...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作