supdatea.java
来自「主要对各种数据库性能进行测试」· Java 代码 · 共 145 行
JAVA
145 行
package sqlite;
import java.sql.SQLException;
import java.util.Random;
public class SupdateA extends ServerFactory {
static int ist,thenum = 0;
static long max,min,total;
int update_thread_num,num;
long avg;
String table = "users",showprint = "",dbtype="";;
ExecSql exec = new ExecSql();
WriteFile file = new WriteFile();
Configure config = new Configure();
public SupdateA() {
this.init();
}
@Override
synchronized public int Exec() {
// TODO Auto-generated method stub
int newval = 0,recnum = 0;
String rec = "",in = "";
thenum ++;
newval = thenum;
rec = config.getProperty("updatenum");
update_thread_num = Integer.parseInt(config.getProperty("update_thread_num"));
num = Integer.parseInt(config.getProperty("updatenum"));
showprint = config.getProperty("showprint");
recnum = 10000;
if(rec!= null) {
recnum = Integer.parseInt(rec);
}
try {
String sql = "";
long lstart = System.currentTimeMillis();
conn.setAutoCommit(true);
in = "第"+newval+"组"+num+"行数据更新开始执行!";
System.out.println(in);
file.aLine(in);
for(int i= 1 ;i <=recnum;i++) {
if(showprint.equalsIgnoreCase("yes")){
Random rand = new Random();
int ii=rand.nextInt(1000);
sql="update "+table+" set column2='xxx"+i+"',column3 ='bbb"+i+"' where userid="+ii;
exec.update(conn, sql);
}
}
long lend = System.currentTimeMillis();
long ltook = lend-lstart;
ist++;
if(ist==1){
min = ltook;
}
if(max<ltook){
max = ltook;
}
if(min>ltook){
min = ltook;
}
total += ltook;
String ls = "";
System.out.println("curThreadID.isRandom="+curThreadID.isRandom);
if (curThreadID.isRandom == 1 ){
if (ist == curThreadID.updateNum){
avg = total/ist;
ls= "\n/***********************************************************************************************************************/\n";
ls+="/***操作:更新数据,线程数:"+ist+",每个线程更新行数:"+num+"," +
"最小等待时间:"+min+"ms,最大等待时间:"+max+"ms,总共等待时间:"+total+"ms"+",平均等待时间:"+avg+"ms。***/\n";
ls+="/***********************************************************************************************************************/\n";
}
}else{
if(ist == update_thread_num){
avg = total/ist;
ls= "\n/***********************************************************************************************************************/\n";
ls+="/***操作:更新数据,线程数:"+ist+",每个线程更新行数:"+num+"," +
"最小等待时间:"+min+"ms,最大等待时间:"+max+"ms,总共等待时间:"+total+"ms"+",平均等待时间:"+avg+"ms。***/\n";
ls+="/***********************************************************************************************************************/\n";
}
}
in = "update第"+newval+"组数据更新"+rec+"条记录用时:"+(lend-lstart)+"ms,从"+lstart+"到"+lend;
System.out.println(in + "\n" + ls);
file.aLine(in + "\n" + ls);
return 1;
} catch (SQLException e) {
// TODO Auto-generated catch block
//System.out.println(e.getMessage());
//e.printStackTrace();
try{
if(conn!=null) {
exec.closeConn(conn);
System.out.println("disconnect");
file.aLine("disconnect");
}
}catch(Exception ee){
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try{
//file.finish();
freeConnection(this.dbtype);
if(conn!=null) {
exec.closeConn(conn);
}
System.out.println("disconnect");
file.aLine("disconnect");
}catch(Exception e){
e.printStackTrace();
}
}
return 0;
}
@Override
public int init() {
// TODO Auto-generated method stub
this.dbtype = config.getProperty("dbtype");
if(!initConnection(dbtype)) {
System.out.println("create database connection failed!");
return -1;
}
return 0;
}
public static void main(String[] args) {
SupdateA a = new SupdateA();
a.init();
a.Exec();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?