`
longforfreedom
  • 浏览: 198795 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MyBaits中Insert至动态表名及foreach使用

阅读更多

 

<?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="mm.import">
	<insert id="insertData" parameterType="hashmap">
		insert into nwh.tt_${suffix}(a,b) values
	<!--map list --->
		<foreach collection="list" separator="," index="index" 						item="obj">
			(#{obj[order]},#{obj[name]})
		</foreach>
	</insert>
</mapper>
 

 

下面是一个简单的使用动态表名和foreach使用的简单配置

 

${suffix} "${}"只做简单的替换

#{obj[order]}"#{}"会做处理

 

 

 

对应的数据结构如下面代码表示:

List<Map<String,String>> list = new ArrayList<Map<String,String>>();
		Map<String,String> map= new HashMap<String,String>();
		map.put("order", "123");
		map.put("name", "miyong");
		Map<String,String> map2= new HashMap<String,String>();
		map2.put("order", "1234");
		map2.put("name", "miyong");
		list.add(map);
		list.add(map2);
	
		Map<String,Object> param = new HashMap<String, Object>();
		param.put("suffix", "20110710");
		param.put("list", list);
 

 

对应的表结构:

 CREATE TABLE NWH.TT_20110710 (A INTEGER, B VARCHAR(20))

对应生成的SQL类似:

 

insert into nwh.tt_20110710(a,b) values (?,?) , (?,?)
 

 

 

 

注意:Map<String,String> map,而物理表中一个Ingeger字段,一个VARCHAR字段,MyBatis会自己做类型映射

 

分享到:
评论

相关推荐

    Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    在Oracle数据库中使用MyBatis的`&lt;foreach&gt;`标签进行批量插入时,可能会遇到“SQL命令未正确结束”的错误。这个问题通常由于Oracle数据库对批量插入语句的语法要求与MySQL等其他数据库系统不同所导致。以下是对这个...

    Mybaits配置文件之动态SQL配置备忘录

    Mybaits的动态SQL配置是指在XML配置文件中使用动态参数来构建SQL语句的过程。这种配置方式可以根据不同的情况动态地生成SQL语句,从而提高系统的灵活性和可扩展性。 动态参数拼接的查询语句 在Mybaits配置文件中,...

    mybaits动态sql教程

    动态SQL是MyBatis框架中的一项重要技术,它极大地提升了开发人员编写SQL语句的灵活性和效率。传统的JDBC编程中,开发者需要手动拼接SQL语句,稍有不慎就会引入错误。而MyBatis的动态SQL功能通过一系列的标签来构建可...

    MyBatis批量插入(insert)数据操作

    4. **foreach标签的使用**: `foreach`标签是MyBatis提供的循环构造SQL语句的工具,它可以迭代任何集合类型的数据,包括List、Set等。`collection`属性的值取决于传入参数的类型,例如: - 如果是List,`...

    Mybaits 文档

    要使用MyBatis,只需在类路径中包含mybatis-x.x.x.jar文件即可。 如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.mybatis &lt;artifactId&gt;mybatis &lt;version&gt;x.x.x ``` ##### 2.2 从...

    手写mybaits框架代码

    手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写mybaits框架代码手写...

    Mybaits-plus优雅的实现多数据源及分表

    在IT行业中,数据库管理和优化是至关重要的环节,尤其是在大数据量的场景下。本文将深入探讨如何使用MyBatis-Plus优雅地实现多数据源及分表策略,为系统的高效运行提供支持。 首先,多数据源是指在一个应用中同时...

    mybaits demo

    4. **动态SQL**:MyBatis支持在XML映射文件中使用条件语句,实现动态构建SQL,提高代码的可复用性和灵活性。 5. **参数映射与结果映射**:学习如何将Java对象映射到SQL的参数,以及将查询结果映射回Java对象。 6. **...

    mybaits实例项目

    MyBatis使用动态代理机制,根据DAO接口生成实现类,实现方法调用到SQL的自动绑定。 4. **SqlSession**: SqlSession是MyBatis的主要工作接口,用于执行SQL语句和处理结果。在执行完SQL后,需要关闭SqlSession以释放...

    mybaits生成代码工具

    接口中定义了对应数据库操作的方法,如`selectById`、`insert`、`update`和`delete`等,而实现类则会绑定这些方法的SQL语句,并利用MyBatis的动态SQL功能进行灵活的查询。这样,开发者只需要在XML配置文件中编写SQL...

    mybaits demo程序

    在"mybaits demo程序"中,我们可以深入学习MyBatis的配置、使用方法以及其核心组件。 1. **MyBatis配置**: - **mybatis-config.xml**: 这是MyBatis的全局配置文件,包含了数据源、事务管理器、类型别名、插件、...

    SpringMvC+Mybaits

    但正如描述中提到的,“SpringMVC+Mybaits 有点乱”,这可能意味着项目中的代码组织、配置管理或者模块划分不够清晰,需要进一步优化和整理,以提高代码的可读性和可维护性。在实际开发中,遵循良好的编码规范、合理...

    Mybaits-one2many

    在本案例 "Mybaits-one2many" 中,我们将探讨如何实现一对多的关系查询,并且通过实践来理解这种映射关系。 首先,我们需要了解一对多关系的基本概念。在数据库设计中,如果一个表(如用户表)的某一行可以与另一个...

    mybaits自动生成代码

    3. **使用方式**:可以通过命令行或者集成到IDE(如IntelliJ IDEA、Eclipse)中使用CodeGenerator。在IDE中,可以设置好配置文件后,一键生成所有代码,非常方便。 4. **自定义模板**:如果你不满意默认的生成模板...

    mybaits最新jar包

    mybaits通过maven构建的最新jar包文件

    mybaits-spring配置

    这个主题,"mybaits-spring配置",主要涵盖了如何将MyBatis 3.1.1版本与Spring 3.0.5版本集成,并通过使用mybatis-spring-1.1.1.jar库来实现数据访问层(DAO)的无缝配合。下面将详细解释这一整合过程中的关键知识点...

    springboot+mybaits+pagehelper

    - 在代码中使用 `Logger` 类进行日志输出。 5. **整合过程**: - 将 MyBatis 的配置、Mapper、Service、Controller 等组件集成到 SpringBoot 项目中。 - 调整配置以适应 PageHelper 的分页规则,确保分页功能...

    spring maven mybaits spingmvc整合项目

    Spring、Maven、MyBatis和Spring MVC是Java开发中常用的四大框架,它们的整合能够构建出高效、灵活的企业级应用。本项目是基于这些技术的最新整合实践,旨在提供一个结构清晰、功能完整的开发模板。 首先,Maven是...

    mybaits反向工程

    接着,确保 MyBatis 能正确加载这些文件,就可以在代码中使用生成的 Mapper 接口进行数据库操作了。 MyBatis 反向工程的执行流程通常如下: 1. 创建 generatorConfig.xml 配置文件,配置数据库连接信息、生成策略...

    Mybatis实现多表联合查询和批量插入

    在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用Mybatis实现多表联合查询和批量插入。 一、多表联合查询 在实际开发中,经常需要对多个表进行联合查询,例如,...

Global site tag (gtag.js) - Google Analytics