MYSQL批量插入數(shù)據(jù)的實(shí)現(xiàn)代碼第1/3頁(yè)
cls
set CLASSPATH=..\api\jogre.jar
set CLASSPATH=%CLASSPATH%;.
set CLASSPATH=%CLASSPATH%;classes
set CLASSPATH=%CLASSPATH%;lib\dom4j.jar
java org.jogre.server.JogreServer
建表
create database con_test;
use con_test;
create table test(id int not null,txt varchar (70),primary key (id),index (id));
就兩個(gè)字段,id加索引。
用java程序給表循環(huán)10萬(wàn)次插入紀(jì)錄,id(循環(huán)次數(shù)) 和 內(nèi)容(這條記錄是第=xx)
InsertTestMysql.java
import java.lang.*;
import java.sql.*;
public class InsertTestMysql{
public static void main(String [] args){
java.util.Date now_start = new java.util.Date();
long start_time=now_start.getTime();
int st = 100000;
String str,info;
String db="org.gjt.mm.mysql.Driver";
String host="jdbc:mysql://192.168.1.35/test";
String user="root";
String passwd="root";
Connection con=null;
try{
Class.forName(db).newInstance();
}
catch(Exception e){
System.out.println("加載驅(qū)動(dòng)失敗:"+db);
}
try{
con=DriverManager.getConnection(host,user,passwd);
con.setAutoCommit(false);//關(guān)閉事務(wù)自動(dòng)提交
for (int i=1;i<=st;i++){
info = "這條記錄是第=";
info = info.concat(java.lang.Integer.toString(i));
str = "insert into test (id,txt) values(?,?);";
PreparedStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,info);
pstmt.executeUpdate();
}
con.commit();//語(yǔ)句執(zhí)行完畢,提交本事務(wù)
con.close();
}
catch(Exception e) {
System.out.println(e);
}
java.util.Date now_end = new java.util.Date();
long end_time=now_end.getTime();
long use_time=end_time-start_time;
System.out.println("<<---本頁(yè)生成耗時(shí)["+use_time+"]毫秒("+((double)use_time)/1000+"秒)--->>");
System.out.println("\n<<---共插入記錄"+st+"條-->>");
}
}
在不同版本的jdbc下,表現(xiàn)不同。
jdbc 3.1.7, 12770,12778 插入這個(gè)數(shù)目時(shí),程序退出,中文正常。
jdbc 3.1.12 12000 插入這個(gè)數(shù)目時(shí),程序退出,中文正常。
均出現(xiàn)以下提示:
"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"
“Java 堆 空間 錯(cuò)誤”,可能是我機(jī)器內(nèi)存不夠。但用3.10系列jdbc就正常。
jdbc 3.0.16-ga 10萬(wàn)記錄正常,中文正常。
jdbc 3.0.10 10萬(wàn)記錄成功,但中文錯(cuò)誤。
使用3.1系列jdbc,程序運(yùn)行后,機(jī)器剩余物理內(nèi)存很快就成了40xxKB了。
這個(gè),也可能是jdbc3.1系列需要內(nèi)存大,我機(jī)器內(nèi)存不足。
明天再去同學(xué)的AMD64 512M RAM 機(jī)器測(cè)試。
jdbc 3.0.16-ga 唯一這個(gè)正常的,測(cè)試結(jié)果為:
D:\Program Files\test\db_test>java InsertTestMysql
<<---本頁(yè)生成耗時(shí)[98582]毫秒(98.582秒)--->>
<<---共插入記錄100000條-->>
前幾天又測(cè)試了下,用開(kāi)源的jdts 的jdbc 連接ms-sql server 2000 sp3 其他同上,測(cè)試結(jié)果慘不忍睹:
D:\dev\java\src\ts\Ms-Sql>java InsertTestMssql
<<---本頁(yè)生成耗時(shí)[1746681]毫秒(1746.681秒)--->>
<<---共插入記錄100000條-->>
相關(guān)文章
spring框架下@value注解屬性static無(wú)法獲取值問(wèn)題
這篇文章主要介紹了spring框架下@value注解屬性static無(wú)法獲取值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Springboot整合Mybatispuls的實(shí)例詳解
這篇文章主要介紹了Springboot整合Mybatispuls的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java實(shí)現(xiàn)調(diào)用ElasticSearch?API的示例詳解
這篇文章主要為大家詳細(xì)介紹了Java調(diào)用ElasticSearch?API的效果資料,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2023-03-03
SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的解決方法
在Spring?Cloud中,使用Feign進(jìn)行服務(wù)之間的調(diào)用時(shí),默認(rèn)情況下是不會(huì)傳遞header的,這篇文章給大家介紹SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的解決方法,感興趣的朋友一起看看吧2024-01-01
Spring技巧之如何動(dòng)態(tài)讀取配置文件
這篇文章主要介紹了Spring技巧之如何動(dòng)態(tài)讀取配置文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
使用Java的Graphics類進(jìn)行繪圖的方法詳解
這篇文章主要介紹了使用Java的Graphics類進(jìn)行繪圖的方法,是Java的GUI編程的基礎(chǔ),需要的朋友可以參考下2015-10-10
Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式
這篇文章主要介紹了Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Java數(shù)據(jù)結(jié)構(gòu)之稀疏數(shù)組的實(shí)現(xiàn)與應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)中稀疏數(shù)組的實(shí)現(xiàn)與應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2022-10-10

