手机
当前位置:查字典教程网 >编程开发 >Java >MYSQL批量插入数据的实现代码第1/3页
MYSQL批量插入数据的实现代码第1/3页
摘要:@echooffclssetCLASSPATH=..apijogre.jarsetCLASSPATH=%CLASSPATH%;.setCLA...

@echo off

cls

set CLASSPATH=..apijogre.jar

set CLASSPATH=%CLASSPATH%;.

set CLASSPATH=%CLASSPATH%;classes

set CLASSPATH=%CLASSPATH%;libdom4j.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 Filestestdb_test>java InsertTestMysql

<<---本页生成耗时[98582]毫秒(98.582秒)--->>

<<---共插入记录100000条-->>

前几天又测试了下,用开源的jdts 的jdbc 连接ms-sql server 2000 sp3 其他同上,测试结果惨不忍睹:

复制代码 代码如下:

D:devjavasrctsMs-Sql>java InsertTestMssql

<<---本页生成耗时[1746681]毫秒(1746.681秒)--->>

<<---共插入记录100000条-->>

当前1/3页123下一页阅读全文

【MYSQL批量插入数据的实现代码第1/3页】相关文章:

java连接MySQl数据库实例代码

java Tapestry4.1.2入门说明教程第1/2页

Java批量修改文件名的实例代码

Java生成PDF文件的实例代码

用java实现的获取优酷等视频缩略图的实现代码

java实现大文件分割与合并的实例代码

关于JAVA 数组的使用介绍

归并排序的实现代码与思路

java 获取当前函数名的实现代码

JAVA简单链接Oracle数据库 注册和登陆功能的实现代码

精品推荐
分类导航