Mapper中多参数查询,
批量更新
参数包括String和List类型时,Strig类型的为表名,日志表以月为单位生成,(还可以使用按月表分区功能优化性能)一般使用Map方式注入参数。例如调用类:
- publicint 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);
- }
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配置文件:
- <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>
<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文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...
在Mybatis中,我们经常需要处理复杂的SQL查询,其中涉及到多条件筛选,这些条件可能是可选的,并且可能需要在`AND`与`OR`之间灵活切换。标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,...
在Mybatis这个强大的持久层框架中,多参数查询与列表查询是常见的操作,尤其是在处理复杂的业务逻辑时。本文将深入探讨Mybatis如何实现这两种查询方式,并提供多种实现方法。 首先,我们来理解Mybatis的基本概念。...
在本教程中,我们将深入探讨如何在MyBatis框架中使用Mapper接口来重构传统的XML配置文件,从而提高代码的可读性和维护性。MyBatis是一个流行的持久层框架,它允许开发者将SQL语句与Java代码分离,提供了一种灵活的...
- **`parameterMap`**: (已废弃) 用于旧版本的参数映射,现在通常使用`<parameter>`元素直接在SQL语句内声明参数。 在实际应用中,`mybatis-3-config.dtd`文件通常会包含全局配置,而`mybatis-3-mapper.dtd`文件则...
3. 使用了@Param注解或有多个参数时,将参数转换为Map类型,并且还根据参数顺序存储了key为param1,param2等的参数名。 参数传递方式 ------------- 在MyBatis中,有两种使用参数的方式:接口形式和命名空间方式。...
在本文中,我们将深入探讨如何利用Mybatis的注解实现增删查改(CRUD)操作以及多参数列表查询。 1. **增(Create)**: 在Mybatis中,我们可以使用`@Insert`注解来插入数据。例如: ```java @Insert("INSERT INTO ...
映射文件的结构包括 `<mapper>` 标签,其中包含了多个 `<select>`, `<insert>`, `<update>`, 和 `<delete>` 标签,分别对应 SQL 的四种基本操作。每个标签内写入相应的 SQL 语句,并通过 `id` 属性唯一标识。 例如...
"Mybatis返回单个实体或者返回List的实现" Mybatis是一种流行的持久层框架,它提供了强大的映射机制,...Mybatis返回单个实体或者返回List的实现可以通过使用语句来实现。开发者可以根据实际情况选择合适的返回方式。
- `select`:查询操作可以是单个记录或多个记录,可以使用`selectOne`或`selectList`方法,同时可以利用MyBatis的动态SQL功能进行条件判断。 5. **关联查询**: - MyBatis支持一对一、一对多、多对多等关联查询。...
在MyBatis配置文件中,每一个<mapper>节点对应一个Mapper接口,这个接口声明的方法名称和参数类型与配置文件中|update|delete|insert>节点项相对应。通过动态代理机制,MyBatis能够根据接口声明的方法生成Mapper实例...
mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门...
通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper接口和Mapper XML文件时,无需关心具体的分页细节。 MyBatis中的拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截执行SQL的...
本文将总结Mybatis中传递多个参数的4种方法,并且介绍了关于使用Mapper接口时参数传递方式。 方法1:顺序传参法 顺序传参法是Mybatis中传递多个参数的一种方法。该方法使用#{ }里的数字代表传入参数的顺序。例如,...
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在处理复杂的数据库关系时,如一对一、一对多、多对多,MyBatis通过XML配置文件或...
MyBatis使用简单的XML或注解进行配置和原始映射,可以将接口和Java的POJOs(Plain Old Java Objects,即普通的Java对象)映射为数据库中的记录。这种方式大大简化了Java应用与数据库交互的过程,提高了开发效率。 *...
4. **批量插入与更新**:MyBatis-Plus支持一次性插入或更新多条数据,提高了数据处理的效率。 5. **主键生成策略**:内置了多种主键生成策略,如ID_WORKER(分布式雪花算法)、SEQENCE(序列方式)等,可根据数据库...
MyBatis支持使用`@Param`注解来指定参数名,或者通过Map对象传入多个参数。 5. **事务管理**:MyBatis提供了事务控制功能,可以在SqlSessionFactory中配置事务隔离级别和回滚规则。开发者也可以手动控制事务的开启...
随着你对MyBatis的深入理解,你还可以学习到更多高级特性,如动态SQL、缓存、一对一和一对多关联映射等。通过实践,你将能够熟练地在项目中应用MyBatis,提高开发效率,并实现优雅的数据访问层设计。
9. **SQL执行**:使用SqlSession的selectOne、selectList、insert、update和delete方法执行SQL操作。注意,对于可能返回多条结果的selectOne,如果没有找到结果会抛出异常。 10. **MyBatis Generator**:这是一个...