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 + -
显示快捷键?