传入的参数只要是list类型的参数就行了。。。。。。。。。。。。。。1、批量插入<insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item="item" index="index" close=")" open="(" separator="union"> select #{item.cityCode,jdbcType=VARCHAR}, #{item.cityName,...
xml文件参数对象:1publicclass Columns{
2private String basedate_code;
3private String tableName;
4private String codeDescribeindex;
5private String codeInfoindex;
6private String codePymindex;
7private List<Info> infos;Dao层方法:publicvoid bulkInsert(Columns columns);xml文件配置: 1<insert id="bulkInsert" parameterType="Columns"> 2 insert into manager_basedata_info (app_code,basedata_code,...
传入的参数只要是list类型的参数就行了。。。。。。。。。。。。。。1、批量插入<insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item="item" index="index" close=")" open="(" separator="union"> select #{item.cityCode,jdbcType=VARCHAR}, #{item.cityName,...
批量插入dao层public interface MsgInfoMapper {int insertBatch(@Param("tableName")String tableName,@Param("list")List<MsgInfo> list);
}
mapper.xml
传入表名,使用${}拼接,不会预编译,使用#{}会导致预编译为占位符号“?”<?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="com.example.mybati...
/// <summary>2 /// 批量插入数据3 /// </summary>4 /// <param name="table">数据表</param>5 /// <param name="targetTableName">数据库目标表名</param>6 /// <returns></returns>7 public static bool ExcuteBulkData(DataTable table, string targetTableName)8 {9 bool result = false;
10 using (ODAC.OracleConnection conn = new ODAC....
Oracle):<!-- 批量插入临时表--><insert id="insertTempPhoneBatch"parameterType="java.util.HashMap" >insert into ce_tempPhone_info(phone)(<foreach collection="list"item="item" separator="union"opne="" close="" index="">select #{item,jdbcType=VARCHAR} from dual</foreach>)</insert>Insert intoce_tempPhone_info(phone) (select xxx from dual union select yyy from dual …..);解析:parameterType:参数的类型...
为
此自己写了想了一种方式,没想到一次测试完全通过。
大致demo如下 java 代码 1 /**2 * 文件名称: InsertBatch3 * 内容摘要: 测试 MyBatis 使用序列批量插入4 * 创 建 人: sunrise5 * 创建日期:2015-6-18 下午9:16:066 * 修改记录1: // 修改历史记录,包括修改日期、修改者及修改内容7 * 修改日期:8 * 版 本 号:9 * 修 改 人:
10 * 修改内容:
11 * 修改记录2:…
12 */
13 @TransactionConfigurati...
: 仅能绑定要插入 LONG 列的 LONG 值
查找原因:
报异常原因:向数据库执行插入日志数据操作时,user_agent字段值过长,如果是varchar2类型的,varchar2类型最大长度是4000,当超过4000,oracle会自动将该字段值转为long型的,然后,插入操作失败。解决办法是:将此字段的类型改为clob或者blob类型;
下面是解决办法【因为之前这张表中有数据,所以新添加一列,进行复制数据】:
--添加一个clob类型字段 ,clob不需指定长度alter t...
### The error may involve ApplaudDaoImpl.addList-Inline
### The error occurred while setting parameters
### SQL: INSERT ALL INTO T_APPLAUD ( ID, USER_ID, BUSINESS_TYPE, PRODUCT_ID, CREATE_TIME ) VALUES ( ?, ?, ?, ?, ? ) INTO T_APPLAUD ( ID, USER_ID, BUSINESS_TYPE, PRODUCT_ID, CREATE_TIME ) VALUES ( ?, ?, ?, ?, ...
try {
String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SID
String user = "oracle";
String password = "oracle";
StringBuffer sql = new StringBuffer();
sql.append("insert into ex_log (EX_LOG_ID,EX_LOG_DATE) values (?,?)");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = (Connection) DriverManager.getConnection(url,user,password); ...
项目DB框架:Mybatis。DataBase:Oracle。
----------------------------------------------------------------------------
批量插入数据方式:
一、Mybatis 全局设置批处理;
二、Mybatis 局部设置批处理;
三、Mybatis foreach批量插入:
①SELECT UNION ALL;
②BEGIN INSERT INTO ...;INSERT INTO...;...;END;
四、java自带的批处理插入;
五、其他方式
--------------------------------------------------------------------...
传入的参数只要是list类型的参数就行了。。。。。。。。。。。。。。1、批量插入<insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item="item" index="index" close=")" open="(" separator="union"> select #{item.cityCode,jdbcType=VARCHAR}, #{item.cityName,...
UNION, INTERSECT, or MINUS set operator■ The WHERE clause of a SELECT statement■ The DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement■ The condition of a CHECK constrain
参考(连接没法放上去,因为提示内容违禁 http://www.+++ w2bc +++.com/Article/18614, 访问时把加号去掉)
应该是上面标红的那条导致的,大致意思是 用union 连接的两个select 不能使用序列
但是我们看到在单个select 是可以...
要做批量插入数据库,首先得知道该数据库对批量插入所支持的语法。每个数据库批量插入的语法都不一样,我介绍两种。MySQL:1、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,‘张三‘),(2,‘李四‘) 2、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,‘张三‘);INSERT INTO TABLE_NAME(ID,NAME)VALUES(2,‘李四‘)Oracle:1、INSERT INTO TABLE_NAME (ID,NAME) (SELECT 1,‘张三‘ from dual) union all (SELECT 2,‘李四‘ fr...
Oracle批量插入数据
学习了:http://blog.csdn.net/chenleixing/article/details/45165761/
膜拜一下,引用原文:那么有没有其他方法呢??答案是有的,也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:"INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句"。后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的S...