import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestSQL {

    public TestSQL() {
            try {
                Class.forName ("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection ("jdbc:mysql://10.0.3.165:3306/test", "user", "passwd");
                long t0=System.nanoTime();
                PreparedStatement ps=conn.prepareStatement("insert into TABLE values (?,?,?,?,?)");
                PreparedStatement d_ps=conn.prepareStatement("delete from TABLE where id = ?");
                System.out.println("INIT PS: ");
                System.out.println(((double)System.nanoTime()-t0)/1000D);
                
                t0=System.nanoTime();
                StringBuilder sql=new StringBuilder("insert into TABLE values ");
                for(int i=0;i<5000;i++){
                        sql.append("(?,?,?,?,?)");
                        if(i<4999)
                                sql.append(",");
                }
                PreparedStatement ps2=conn.prepareStatement(sql.toString());
                StringBuilder dsql=new StringBuilder("delete from TABLE where id in (");
                for(int i=0;i<5000;i++){
                        dsql.append("?");
                        if(i<4999)
                                dsql.append(",");
                        else
                                dsql.append(")");
                }
                
                PreparedStatement d_ps2=conn.prepareStatement(dsql.toString());
                System.out.println("INIT PS2: ");
                System.out.println(((double)System.nanoTime()-t0)/1000D);
                
                //
                long t1=System.nanoTime();
                for(int i=0;i<5000;i++){
                ps.setInt(1, (3100001+i));
                ps.setString(2, "providerName"+i);
                ps.setInt(3, (76+i%2));
                ps.setString(4, "http://url_"+i);
                ps.setInt(5, i%2);
                ps.addBatch();
                }
                ps.executeBatch();
                ps.close();
                System.out.println("FIRST TIME INSERT: ");
                System.out.println(((double)System.nanoTime()-t1)/1000D);
                //
                
                //
                t1=System.nanoTime();
                for(int i=0;i<5000;i++){
                d_ps.setInt(1, (3100001+i));
                d_ps.addBatch();
                }
                d_ps.executeBatch();
                d_ps.close();
                System.out.println("FIRST TIME DELETE: ");
                System.out.println(((double)System.nanoTime()-t1)/1000D);
                //
                
                //
                t1=System.nanoTime();
                for(int i=0;i<5000;i++){
                ps2.setInt(1+i*5, (3100001+i));
                ps2.setString(2+i*5, "providerName"+i);
                ps2.setInt(3+i*5, (76+i%2));
                ps2.setString(4+i*5, "http://url_"+i);
                ps2.setInt(5+i*5, i%2);
                }
                ps2.executeUpdate();
                ps2.close();
                System.out.println("second TIME INSERT: ");
                System.out.println(((double)System.nanoTime()-t1)/1000D);
                //
                
                //
                t1=System.nanoTime();
                for(int i=0;i<5000;i++){
                d_ps2.setInt(1+i, (3100001+i));
                }
                d_ps2.executeUpdate();
                d_ps2.close();
                System.out.println("second TIME DELETE: ");
                System.out.println(((double)System.nanoTime()-t1)/1000D);
                //
                
                
        } catch (ClassNotFoundException e) {
                e.printStackTrace();
        } catch (SQLException e) {
                System.out.println(e.getMessage());
                System.out.println(e.getSQLState());
                System.out.println(e.getNextException());
                e.printStackTrace();
        }
            
        	
    }

    public static void main(String[] args) {
    	TestSQL test = new TestSQL();
    }

}