Mybatis框架進行批量匯入和刪除有三種方式

2022-07-01 16:39:08 字數 2017 閱讀 1300

首先建立乙個資料庫

create table user (

id varchar(32) character set utf8 not null,

name varchar(50) character set utf8 default null ,

dflag

char(1) character set utf8 default null ,

primary key (`id`)

)

jdbc.properties配置

mysql.driver=com.mysql.jdbc.driver

mysql.url=jdbc:mysql://

127.0.0.1:3306/qingmu?characterencoding=utf-8

mysql.username=root

mysql.password=admin

#定義初始連線數

mysql.initialsize=1#定義最大連線數

mysql.maxactive=20#定義最大空閒

mysql.maxidle=20#定義最小空閒

mysql.minidle=1#定義最長等待時間

mysql.maxwait=60000

<?xml version="1.0" encoding="utf-8" ?>

doctype configuration

public "- config 3.0//en"

"">

package>

default="development">

第一種:普通的for迴圈

就是假如說有100條資料,要全部插入到資料庫中,可以直接使用for迴圈進行

其他的配置檔案都不用改動,只需要

@test

//for迴圈插入大量的資料

public

void insertbatch() throws

ioexception

}

第二種需要為opensession新增乙個引數:

@test

public

void testinsertbatch2() throws

exception

sqlsession.commit();

long end =system.currenttimemillis();

system.out.println("---------------" + (start - end) + "---------------");

}

第三種就是使用foreach標籤

insert into t_user

(id, name, dflag)

values

(#, #, #)

@test

public

void testinsertbatch() throws

exception

userservice.insertbatch(list);

}

特別注意:mysql預設接受sql的大小是1048576(1m),即第三種方式若資料量超過1m會報如下異常:(可通過調整mysql安裝目錄下的my.ini檔案中[mysqld]段的"max_allowed_packet = 1m")

nested exception is com.mysql.jdbc.packettoobigexception: packet for query is too large (5677854 > 1048576).

you can change

this value on the server by setting the max_allowed_packet' variable.

總結:使用動態sql拼出來的批量匯入用時最少,而且效率高,其他兩種,效率在資料量較大的情況下的時候,效能較差.

mybatis使用foreach進行批量儲存

mysql下批量儲存 mysql支援語法 inset into table values 可以使用foreach進行遍歷儲存 第一種方法 insert into employee last name,email,gender values 第二種方法 傳送多條sql 也是使用foreach,每次遍歷...

利用mybatis框架批量插入資料

總結專案重要用到利用mybatis框架批量插入資料庫的問題,大概整理了以下幾種方法 首先建立實體類 import lombok.data data public class user 建立user表 create table user id int 11 notnull auto increment...

Django框架利用ajax實現批量匯入資料功能

url.py 複製 如下 url r workimpor程式設計客棧t keywork.views.import keywork name import keywork view.py from keywork.models import devdata from django.http impor...