`
frank1998819
  • 浏览: 758221 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Mybatis的Mapper的多参数使用,list (转)

 
阅读更多

Mapper中多参数查询,

批量更新
参数包括String和List类型时,Strig类型的为表名,日志表以月为单位生成,(还可以使用按月表分区功能优化性能)一般使用Map方式注入参数。
例如调用类:
Java代码 复制代码 收藏代码
  1. publicint batchUpdate(List<Logs> list,String num) {
  2. Map<String,Object> paramMap = new HashMap<String,Object>();
  3. String tableName = "logs_t"+num;
  4. paramMap.put("tableName", tableName);
  5. paramMap.put("logslist", list);
  6. return mapper.batchUpdateLogs(paramMap);
  7. }
public int batchUpdate(List<Logs> list,String num) {
Map<String,Object> paramMap = new HashMap<String,Object>();
String tableName = "logs_t"+num;
paramMap.put("tableName", tableName);
paramMap.put("logslist",  list);
return mapper.batchUpdateLogs(paramMap);
}
Mapper类:
int batchUpdateLogs(Map<String, Object>paramMap);
Mapper配置文件:
Java代码 复制代码 收藏代码
  1. <insert id="batchUpdateWorkLog" parameterType="java.util.Map">
  2. replace into ${tableName} (
  3. <include refid="Base_Column_List" />
  4. ) values
  5. <foreach collection="workLoglist" item="item" index="index" separator="," >
  6. (#{item.id,jdbcType=BIGINT}, #{item.ab,jdbcType=CHAR},
  7. #{item.assid,jdbcType=VARCHAR}
  8. </foreach>
  9. </insert>
<insert id="batchUpdateWorkLog" parameterType="java.util.Map">
    replace into ${tableName} (
<include refid="Base_Column_List" />
) values 
<foreach collection="workLoglist" item="item" index="index" separator="," >
    (#{item.id,jdbcType=BIGINT}, #{item.ab,jdbcType=CHAR}, 
    #{item.assid,jdbcType=VARCHAR}
</foreach>
</insert>
在调用类里面将参数以Object类型植入Map中,传入Mapper配置文件中拼成SQL。
replace into 可以代替update tables set xx = xxx

replace into 有个大坑,在配置有主从服务器的时候会导致从库的自增主键出错,详细内容以下地址:

http://blog.xupeng.me/2013/10/11/mysql-replace-into-trap/
分享到:
评论

相关推荐

    Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf

    在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    在Mybatis中,我们经常需要处理复杂的SQL查询,其中涉及到多条件筛选,这些条件可能是可选的,并且可能需要在`AND`与`OR`之间灵活切换。标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,...

    Mybatis多参数查询与列表查询不同方式实现

    在Mybatis这个强大的持久层框架中,多参数查询与列表查询是常见的操作,尤其是在处理复杂的业务逻辑时。本文将深入探讨Mybatis如何实现这两种查询方式,并提供多种实现方法。 首先,我们来理解Mybatis的基本概念。...

    day70 MyBatis使用mapper重构xml文件

    在本教程中,我们将深入探讨如何在MyBatis框架中使用Mapper接口来重构传统的XML配置文件,从而提高代码的可读性和维护性。MyBatis是一个流行的持久层框架,它允许开发者将SQL语句与Java代码分离,提供了一种灵活的...

    mybatis的config和mapper-dtd

    - **`parameterMap`**: (已废弃) 用于旧版本的参数映射,现在通常使用`&lt;parameter&gt;`元素直接在SQL语句内声明参数。 在实际应用中,`mybatis-3-config.dtd`文件通常会包含全局配置,而`mybatis-3-mapper.dtd`文件则...

    深入了解MyBatis参数

    3. 使用了@Param注解或有多个参数时,将参数转换为Map类型,并且还根据参数顺序存储了key为param1,param2等的参数名。 参数传递方式 ------------- 在MyBatis中,有两种使用参数的方式:接口形式和命名空间方式。...

    Mybatis基于注解实现增删查改和多参数列表查询

    在本文中,我们将深入探讨如何利用Mybatis的注解实现增删查改(CRUD)操作以及多参数列表查询。 1. **增(Create)**: 在Mybatis中,我们可以使用`@Insert`注解来插入数据。例如: ```java @Insert("INSERT INTO ...

    mybatis入门实例(xml)

    映射文件的结构包括 `&lt;mapper&gt;` 标签,其中包含了多个 `&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, 和 `&lt;delete&gt;` 标签,分别对应 SQL 的四种基本操作。每个标签内写入相应的 SQL 语句,并通过 `id` 属性唯一标识。 例如...

    Mybatis返回单个实体或者返回List的实现

    "Mybatis返回单个实体或者返回List的实现" Mybatis是一种流行的持久层框架,它提供了强大的映射机制,...Mybatis返回单个实体或者返回List的实现可以通过使用语句来实现。开发者可以根据实际情况选择合适的返回方式。

    mybatis 基础代码(非spring)

    - `select`:查询操作可以是单个记录或多个记录,可以使用`selectOne`或`selectList`方法,同时可以利用MyBatis的动态SQL功能进行条件判断。 5. **关联查询**: - MyBatis支持一对一、一对多、多对多等关联查询。...

    深入理解mybatis原理

    在MyBatis配置文件中,每一个&lt;mapper&gt;节点对应一个Mapper接口,这个接口声明的方法名称和参数类型与配置文件中|update|delete|insert&gt;节点项相对应。通过动态代理机制,MyBatis能够根据接口声明的方法生成Mapper实例...

    springmybatis

    mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门...

    mybatis 分页拦截器及拦截器配置

    通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper接口和Mapper XML文件时,无需关心具体的分页细节。 MyBatis中的拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截执行SQL的...

    Mybatis中传递多个参数的4种方法总结

    本文将总结Mybatis中传递多个参数的4种方法,并且介绍了关于使用Mapper接口时参数传递方式。 方法1:顺序传参法 顺序传参法是Mybatis中传递多个参数的一种方法。该方法使用#{ }里的数字代表传入参数的顺序。例如,...

    mybatis xml 一对多

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在处理复杂的数据库关系时,如一对一、一对多、多对多,MyBatis通过XML配置文件或...

    MyBatis3.2.4完全自学手册

    MyBatis使用简单的XML或注解进行配置和原始映射,可以将接口和Java的POJOs(Plain Old Java Objects,即普通的Java对象)映射为数据库中的记录。这种方式大大简化了Java应用与数据库交互的过程,提高了开发效率。 *...

    mybatis-plus源码(mybatis-plus-3.5.1.zip)

    4. **批量插入与更新**:MyBatis-Plus支持一次性插入或更新多条数据,提高了数据处理的效率。 5. **主键生成策略**:内置了多种主键生成策略,如ID_WORKER(分布式雪花算法)、SEQENCE(序列方式)等,可根据数据库...

    mybatis开发jar包

    MyBatis支持使用`@Param`注解来指定参数名,或者通过Map对象传入多个参数。 5. **事务管理**:MyBatis提供了事务控制功能,可以在SqlSessionFactory中配置事务隔离级别和回滚规则。开发者也可以手动控制事务的开启...

    MyBatis经典入门实例

    随着你对MyBatis的深入理解,你还可以学习到更多高级特性,如动态SQL、缓存、一对一和一对多关联映射等。通过实践,你将能够熟练地在项目中应用MyBatis,提高开发效率,并实现优雅的数据访问层设计。

    MyBatis使用手册(中文版)3.4.4版

    9. **SQL执行**:使用SqlSession的selectOne、selectList、insert、update和delete方法执行SQL操作。注意,对于可能返回多条结果的selectOne,如果没有找到结果会抛出异常。 10. **MyBatis Generator**:这是一个...

Global site tag (gtag.js) - Google Analytics