国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

MYSQL批量插入數據的實現代碼第1/3頁

2019-11-26 16:19:58
字體:
來源:轉載
供稿:網友
@echo off
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));

就兩個字段,id加索引。
用java程序給表循環10萬次插入紀錄,id(循環次數) 和 內容(這條記錄是第=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("加載驅動失敗:"+db);
}
try{
con=DriverManager.getConnection(host,user,passwd);
con.setAutoCommit(false);//關閉事務自動提交
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();//語句執行完畢,提交本事務
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("<<---本頁生成耗時["+use_time+"]毫秒("+((double)use_time)/1000+"秒)--->>");
System.out.println("/n<<---共插入記錄"+st+"條-->>");
}
}

在不同版本的jdbc下,表現不同。
jdbc 3.1.7, 12770,12778 插入這個數目時,程序退出,中文正常。
jdbc 3.1.12 12000 插入這個數目時,程序退出,中文正常。
均出現以下提示:
"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"
“Java 堆 空間 錯誤”,可能是我機器內存不夠。但用3.10系列jdbc就正常。
jdbc 3.0.16-ga 10萬記錄正常,中文正常。
jdbc 3.0.10 10萬記錄成功,但中文錯誤。
使用3.1系列jdbc,程序運行后,機器剩余物理內存很快就成了40xxKB了。
這個,也可能是jdbc3.1系列需要內存大,我機器內存不足。
明天再去同學的AMD64 512M RAM 機器測試。
jdbc 3.0.16-ga 唯一這個正常的,測試結果為:
復制代碼 代碼如下:

D:/Program Files/test/db_test>java InsertTestMysql
<<---本頁生成耗時[98582]毫秒(98.582秒)--->>
<<---共插入記錄100000條-->>

前幾天又測試了下,用開源的jdts 的jdbc 連接ms-sql server 2000 sp3 其他同上,測試結果慘不忍睹:
復制代碼 代碼如下:

D:/dev/java/src/ts/Ms-Sql>java InsertTestMssql
<<---本頁生成耗時[1746681]毫秒(1746.681秒)--->>
<<---共插入記錄100000條-->>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 古田县| 新竹县| 张掖市| 香港| 西乌| 临洮县| 循化| 普宁市| 广宗县| 荔波县| 富川| 乌兰浩特市| 宽甸| 镇远县| 依兰县| 古丈县| 鄂尔多斯市| 临武县| 蒙城县| 繁峙县| 兴仁县| 苗栗县| 二手房| 津市市| 黔南| 吉木乃县| 四会市| 南宁市| 南靖县| 田林县| 临颍县| 镇平县| 怀仁县| 讷河市| 隆林| 介休市| 徐水县| 北京市| 邢台县| 高碑店市| 元朗区|