`
rs_zheng
  • 浏览: 15158 次
社区版块
存档分类
最新评论

iBatis多参数处理

 
阅读更多
    Mapper中多参数查询,
        批量更新
        参数包括String和List类型时,Strig类型的为表名,日志表以月为单位生成,(还可以使用按月表分区功能优化性能)一般使用Map方式注入参数。
例如调用类: 
Java代码 复制代码 收藏代码
  1. public int 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/
分享到:
评论

相关推荐

    ibatis的多参数查询.doc

    ### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...

    ibatis教程 输入参数详解

    ibatis支持多种参数处理方式,包括基本类型、复杂对象、列表和Map等。参数可以通过`#{}`语法在SQL语句中引用,ibatis会自动进行类型转换和值绑定。 ### resultMap `resultMap`是ibatis中一个重要的概念,用于描述...

    ibatis多表查询

    在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...

    ibatis总结 ibatis ibatis ibatis ibatis

    在Ibatis中,参数可以通过`#`或`$`符号传递。例如,`select * from PRODUCT where PRD_CAT_ID = #{value}`中的`#{value}`是预编译参数,能有效防止SQL注入。 总结,Ibatis提供了灵活的SQL映射机制,使得开发人员...

    ibatis多表查询过程

    本文将深入探讨iBatis在处理多表查询时的具体步骤和技巧。 ### 1. iBatis简介 iBatis 是一个基于Java的持久层框架,它简化了数据库访问,并避免了JDBC代码的繁琐编写。通过XML或注解方式配置SQL与Java对象的映射...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    ResultMap不仅支持简单的列名映射,还能处理复杂的一对多、一对一关系映射。 六、ParameterHandler ParameterHandler负责设置PreparedStatement的参数。`org.apache.ibatis.executor.parameter.ParameterHandler`...

    ibatis批量处理

    iBatis提供了批处理功能,可以在一次数据库连接中执行多个SQL语句,这极大地提高了处理大量数据时的性能。iBatis通过`SqlMapClient`接口提供了几个关键方法来实现批处理: 1. **`startBatch()`**:开始批处理。 2. ...

    ibatis常用sql语句

    总之,iBATIS框架通过丰富的标签系统,为处理各种类型的输入参数提供了灵活而强大的解决方案,使得开发人员能够更加专注于业务逻辑的实现,而不必过多关注底层的数据库操作细节。这对于提高开发效率和代码质量具有...

    ibatis与存储过程(带输出参数的应用)

    3. 在Ibatis 3.x版本中,对于输出参数的处理有所改进,可以直接在`parameterType`中定义JavaBean对象,而不需要使用Map。 总结来说,Ibatis支持与存储过程的集成,包括带输出参数的存储过程,这为开发者提供了更多...

    ibatis应对批量update

    为了解决这个问题,ibatis(现已更名为MyBatis)提供了一种支持批量更新的机制,能够显著提高数据处理的速度。 #### 批量Update背景与问题 在实际应用中,经常会遇到需要批量更新数据库中的数据的情况,例如:商品...

    Ibatis入门例子,Ibatis教程

    随着对Ibatis的深入理解和实践,你会发现它在处理数据库操作时的灵活性和强大性。在实际项目中,结合Spring框架使用Ibatis,可以构建出更加健壮、高效的后端系统。因此,无论你是初学者还是有经验的开发者,掌握...

    ibatis教程,ibatis帮助文档

    1. 映射关系:Hibernate提供了一种对象关系映射(ORM)机制,自动处理对象与数据库之间的转换,而iBATIS需要开发者手动编写SQL语句。 2. 开发效率:在相同需求下,iBATIS的工作量可能大于Hibernate,因为需要手写SQL...

    Ibatis

    2.3 参数绑定:调用 SqlSession 的方法时,传入参数对象或 Map,Ibatis 会自动将参数映射到 SQL 语句中。 2.4 结果处理:查询操作返回的结果会被自动映射到 Java 对象,更新操作返回受影响的行数。 **3. 动态 SQL*...

    ibatis基本操作数据库

    当使用#{paramName}时,iBatis会自动处理参数,将其转化为预编译SQL中的问号,类似于PreparedStatement在Java JDBC中的作用。 2. **动态SQL**:iBatis允许在SQL映射文件中编写条件判断,实现SQL语句的动态生成。...

    ibatis api 帮助文档+IBATIS 开发文档

    5. **Transaction**:处理数据库事务,提供了开始、提交、回滚等操作。 **二、iBATIS SQL Maps开发指南** `iBATIS SQL Maps开发指南.pdf`是一份详细的开发者手册,涵盖了从入门到高级的全部内容,以下是其中的重点...

    ibatis小例子Demo

    5. **结果集映射**:通过`&lt;resultMap&gt;`标签,可以定义复杂的字段映射规则,包括一对一、一对多、多对多的关系映射,使得结果处理更便捷。 6. **事务管理**:Ibatis支持编程式和声明式的事务管理,可以根据项目需求...

    ibatis入门

    Ibatis 会自动处理查询结果,如果返回多条记录,只会返回第一条。确保 SQL 语句的条件能够唯一确定一条记录。 6. **数据集合查询** 对于查询结果集的情况,使用 `selectList` 方法。它会返回一个 List 对象,每个...

    Ibatis 入门经典 实例

    1. Mybatis-Plus:在 Ibatis 基础上提供了更多的扩展功能,如 CRUD 操作、条件构造器等。 2. Mybatis Generator:自动化代码生成工具,自动生成 Entity、Mapper 和 XML 文件,提高开发效率。 通过以上内容,你将对 ...

    ibatis入门与ibatis迭代的用法

    此外,iBatis还支持Map迭代,当查询结果中的列名与Java对象的属性不完全匹配,或者需要处理多表联查结果时,Map迭代非常有用。例如: ```java List, Object&gt;&gt; maps = sqlSession.selectList(...

    ibatis.Net

    7. **事务管理**:Ibatis.Net提供了对数据库事务的支持,你可以选择手动管理事务或者让Ibatis.Net自动处理,这在多表操作和数据一致性维护中非常重要。 8. **扩展性**:Ibatis.Net的设计使得它易于与其他框架集成,...

Global site tag (gtag.js) - Google Analytics