0 0

mybatis foreach出现数据库变量过多0

begin
<foreach collection="insertList" item="myEntity" index="index" separator=";">

INSERT INTO S_class_info(x,x,x,x,x,x,x,x,x)<--大概40个
values
(
#{myEntity.classId,jdbcType=VARCHAR},
#{myEntity.className,jdbcType=VARCHAR}.....
)
</foreach>
end;

出现79458个变量导致数据库宕机



2013年12月09日 15:51

1个答案 按时间排序 按投票排序

0 0

你这个sql不够优化,每一次循环就需要解析一次insert sql,需要时间和缓存空间的

你可以写成
begin
INSERT INTO S_class_info(x,x,x,x,x,x,x,x,x)
values
<foreach collection="insertList" item="myEntity" index="index" separator=";">
(
#{myEntity.classId,jdbcType=VARCHAR},
#{myEntity.className,jdbcType=VARCHAR}.....
)
</foreach>
end;

2013年12月09日 17:17

相关推荐

    MyBatis用法

    例如`&lt;if&gt;`, `&lt;where&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;trim&gt;`, `&lt;foreach&gt;`等标签,可以根据变量值灵活地拼接SQL。 4. 存储过程操作 - MyBatis支持调用数据库存储过程,使用`&lt;select&gt;`标签的`procedure...

    MyBatis3中文官方文档

    - **多数据库支持**:MyBatis支持多种数据库系统,可以在配置文件中指定特定于数据库的行为。 ### 六、插件脚本语言 - **脚本语言**:MyBatis支持使用不同的脚本语言来编写动态SQL。 ### 七、Java API - **API介绍...

    mybatis小练习

    4. **mybatis2_4_sqlStringVar**: 在MyBatis中,我们可以使用变量来动态地构建SQL字符串。这通常涉及到`#{}`占位符,它会自动处理预编译参数,提高SQL执行效率并增强安全性。 5. **mybatis2_5_dyn**: 同样,这与...

    mybatis的oracle的批量插入优化和mybatis的generator自动生成三层文件

    在IT行业中,数据库操作是必不可少的部分,特别是在Java开发中,MyBatis作为一款优秀的持久层框架,被广泛应用。本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成...

    mybatis-demo12-动态SQL语句2-基于注解配置.zip

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者将SQL语句与Java代码相结合,提供了灵活且强大的数据库操作能力。本项目“mybatis-demo12-动态SQL语句2-基于注解配置”是针对MyBatis动态SQL功能的一个...

    详解MyBatis直接执行SQL查询及数据批量插入

    MyBatis是一个强大的持久层框架,它允许开发者直接编写SQL语句,简化了数据库操作。在本文中,我们将深入探讨如何使用MyBatis直接执行SQL查询以及如何进行数据的批量插入。 **一、直接执行SQL查询** 在MyBatis中,...

    mybatis-3-mybatis-3.5.4-src-read.zip

    MyBatis是一个强大的Java持久层框架,它简化了数据库与应用程序之间的交互,使得开发者能够更加专注于业务逻辑的实现。在本压缩包“mybatis-3-mybatis-3.5.4-src-read.zip”中,包含了作者对MyBatis 3.5.4版本源码的...

    mybatis最新官方API

    Statement Builders,如`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;set&gt;` 和 `&lt;foreach&gt;`,使得SQL可以根据变量动态地生成。 6. **dynamic-sql.html**:动态SQL是MyBatis的一大特色,它可以极大地...

    mybatis逆向工程模板文件

    6. **模板语法**:Velocity模板语言的基本语法包括变量引用(如 `${variable}`)、控制结构(如 `#if`、`#foreach`)以及方法调用等。在MyBatis逆向工程中,这些语法常用于动态地生成Java类的属性、方法、注解等。 ...

    MyBatis常见实用面试题整理.docx

    - **动态SQL标签**:Mybatis提供了多种动态SQL标签,如`trim`、`where`、`set`、`foreach`、`if`、`choose`、`when`、`otherwise`、`bind`。 - **执行原理**:利用OGNL表达式从SQL参数对象中计算表达式的值,并根据...

    尚硅谷Mybatis视频教程41-50

    Mybatis作为一款强大的持久层框架,其动态SQL功能使得开发者能够更加灵活地处理数据库操作,提高了代码的可读性和维护性。以下是对每个视频文件名所涉及知识点的详细解读: 1. **45.尚硅谷_MyBatis_动态sql_foreach...

    spring mybatis 3.x 使用图文

    MyBatis的动态SQL功能是其一大亮点,通过`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;trim&gt;`, `&lt;foreach&gt;`等元素,可以根据不同的条件动态生成SQL语句,大大增强了SQL的灵活性和复用性。此外,MyBatis还提供了二级缓存机制,...

    MyBatis传入多个参数的问题

    在使用MyBatis框架进行数据库操作时,经常会遇到需要向SQL查询语句传入多个参数的情况。本文将详细介绍几种常见的多参数传递方法,并结合具体的代码示例来帮助读者更好地理解和应用这些技巧。 #### 一、单个参数 ...

    MyBatis技术文档.pdf

    - 逆向工程是指根据现有的数据库表结构自动生成 MyBatis 的相关配置文件和 Java 实体类等。 1. **创建逆向工程的步骤**: - 添加逆向工程相关的依赖和插件。 - 创建 MyBatis 的核心配置文件。 - 创建逆向工程的...

    mybatis中的动态sql, 涉及 where trim set if foreach等

    本文将详细介绍MyBatis中涉及`where`, `trim`, `set`, `if`, `foreach`等关键字的动态SQL处理方式,并通过具体的示例帮助理解。 #### 二、动态SQL概述 动态SQL是指在运行时根据条件动态构建SQL语句的技术。在...

    MyBatis3_用户指南(附JavaDB实例).

    MyBatis几乎消除了所有的JDBC代码,极大地简化了数据库操作。 - **特点**: - 支持自定义SQL查询,存储过程和高级映射。 - 几乎消除了所有JDBC代码,简化参数设置和结果集检索。 - 支持简单的XML配置,也可通过...

    mybatis private

    动态SQL是MyBatis的另一大亮点,例如`&lt;if&gt;`和`&lt;foreach&gt;`标签允许根据条件或列表生成动态SQL语句。 在模糊查询中,我们经常使用`LIKE`操作配合`%`通配符来实现。MyBatis提供了多种方式来构建这样的查询,包括直接在...

    mybatis知识点总结.docx

    MyBatis是一款强大的Java持久层框架,它极大地简化了数据库访问的复杂度,提供了高度的灵活性和可控性。以下是对MyBatis核心知识点的详细解释: 1. **MyBatis基础**:MyBatis的核心功能在于它能将Java对象与数据库...

Global site tag (gtag.js) - Google Analytics