sinserta.java
来自「主要对各种数据库性能进行测试」· Java 代码 · 共 166 行
JAVA
166 行
package sqlite;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SInsertA extends ServerFactory {
static int ist=0;
static long max=0,min=0,total=0;
long avg=0;
int newval = 0;
static int thenum = 0;
String table = "users", showprint="",dbtype = "" ;
ExecSql exec = new ExecSql();
WriteFile file = new WriteFile();
Configure config = new Configure();
public SInsertA() {
this.init();
}
@Override
synchronized public int Exec() {
String in = "";
thenum ++;
newval = thenum;
in = "第"+newval+"个数据插入开始执行";
System.out.println(in);
file.aLine(in);
ResultSet rs = null;
try {
String sql="";
int insertnum = 10000;
insertnum = Integer.parseInt(config.getProperty("insertnum"));
//System.out.println(insertnum);
conn.setAutoCommit(true);
long lstart = System.currentTimeMillis();
long lstart2 = System.currentTimeMillis();
for(int i = 0;i <insertnum;i++) {
sql = "insert into " + table +
"(column2,column3,column4,column5,column6,column7,column8,column9,column10) " +
"values('column2"+ i +"','column3"+ i +"','column4"+i+"','column5"+i+"','column6"+i+"','column7"+i+"','column8"+i+"','column9"+i+"','column10"+i+"')";
exec.insert(conn, sql);
//System.out.println(sql);
if((i+1)%10000==0){
long lend2 = System.currentTimeMillis();
System.out.println("第"+(i+1)+"条数据提交,费时:"+(lend2 - lstart2)+"ms.");
//conn.commit();
lstart2 = System.currentTimeMillis();
}
}
System.out.println("end!!!");
//conn.commit();
long lend = 0;
lend = System.currentTimeMillis();
long ltook = 0;
ltook = lend - lstart;
in = "insert第"+newval+"组数据"+insertnum+"行插入完毕,用时:"+ ltook +"ms,从"+lstart+"到"+lend;
int insert_thread_num = 0;
insert_thread_num = Integer.parseInt(config.getProperty("insert_thread_num"));
ist++;
if(ist==1){
min = ltook;
}
if(max<ltook){
max = ltook;
}
if(min>ltook){
min = ltook;
}
total += ltook;
String ls = "";
if (curThreadID.isRandom == 1 ){
if (ist == curThreadID.insertNum){
lstart = System.currentTimeMillis();
sql = "select count(1) from " + table;
rs = exec.select(conn, sql);
if(rs.next()){
in = "总数据量:"+rs.getInt(1);
System.out.println(in);
file.aLine(in);
}
rs.close();
lend = System.currentTimeMillis();
System.out.println("查询数据量,费时:"+(lend-lstart)+"ms.");
avg = total/ist;
ls= "\n/**********************************************************************************************************************/\n";
ls+="/***操作:插入数据,线程数:"+ist+",每个线程插入行数:"+insertnum+"," +
"最小等待时间:"+min+"ms,最大等待时间:"+max+"ms,总共等待时间:"+total+"ms"+",平均等待时间:"+avg+"ms。***/\n";
ls+="/**********************************************************************************************************************/\n";
}
}else{
if(ist == insert_thread_num){
lstart = System.currentTimeMillis();
sql = "select count(1) from " + table;
rs = exec.select(conn, sql);
if(rs.next()){
in = "总数据量:"+rs.getInt(1);
System.out.println(in);
file.aLine(in);
}
rs.close();
lend = System.currentTimeMillis();
System.out.println("查询数据量,费时:"+(lend-lstart)+"ms.");
avg = total/ist;
ls= "\n/**********************************************************************************************************************/\n";
ls+="/***操作:插入数据,线程数:"+ist+",每个线程插入行数:"+insertnum+"," +
"最小等待时间:"+min+"ms,最大等待时间:"+max+"ms,总共等待时间:"+total+"ms"+",平均等待时间:"+avg+"ms。***/\n";
ls+="/**********************************************************************************************************************/\n";
}
}
System.out.println( in + "\n" + ls);
file.aLine(in+"\n"+ls);
return 1;
} catch (SQLException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
freeConnection(this.dbtype);
if(conn!=null) {
exec.closeConn(conn);
}
}catch(Exception ee){
}
System.out.println("disconnect");
file.aLine("disconnect");
}
return -1;
}
@Override
public int init() {
// TODO Auto-generated method stub
showprint = config.getProperty("showprint");
this.dbtype = config.getProperty("dbtype");
if(!initConnection(this.dbtype))
{
System.out.println("create database connection failed!");
return -1;
}
return 0;
}
public static void main(String[] args)
{
SInsertA as = new SInsertA();
as.Exec();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?