package com.taobao.tddl.qatest.util; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.taobao.tddl.common.exception.TddlRuntimeException; import com.taobao.tddl.qatest.BaseTestCase; public class PrepareData extends BaseTestCase { /** * normaltbl表数据的准备 start为插入起始数据,end为插入结束数据 */ public void normaltblPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + normaltblTableName, null); mysqlUpdateData("delete from " + normaltblTableName, null); String sql = "REPLACE INTO " + normaltblTableName + " (pk,id,gmt_create,gmt_timestamp,gmt_datetime,name,floatCol) VALUES(?,?,?,?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); andorPs = andorCon.prepareStatement(sql); for (int i = start; i < end / 2; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i % 4 * 100); ps.setObject(2, i % 4 * 100); andorPs.setObject(3, gmtDay); ps.setObject(3, gmtDay); andorPs.setObject(4, gmt); ps.setObject(4, gmt); andorPs.setObject(5, gmt); ps.setObject(5, gmt); andorPs.setObject(6, name); ps.setObject(6, name); andorPs.setObject(7, 1.1); ps.setObject(7, 1.1); andorPs.execute(); ps.addBatch(); } for (int i = end / 2; i < end - 1; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i * 100); ps.setObject(2, i * 100); andorPs.setObject(3, gmtDayNext); ps.setObject(3, gmtDayNext); andorPs.setObject(4, gmtNext); ps.setObject(4, gmtNext); andorPs.setObject(5, gmtNext); ps.setObject(5, gmtNext); andorPs.setObject(6, newName); ps.setObject(6, newName); andorPs.setObject(7, 1.1); ps.setObject(7, 1.1); andorPs.execute(); ps.addBatch(); } for (int i = end - 1; i < end; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i * 100); ps.setObject(2, i * 100); andorPs.setObject(3, gmtDayBefore); ps.setObject(3, gmtDayBefore); andorPs.setObject(4, gmtBefore); ps.setObject(4, gmtBefore); andorPs.setObject(5, gmtBefore); ps.setObject(5, gmtBefore); andorPs.setObject(6, name1); ps.setObject(6, name1); andorPs.setObject(7, (float) (i * 0.01)); ps.setObject(7, (float) (i * 0.01)); andorPs.execute(); ps.addBatch(); } ps.executeBatch(); con.commit(); } /** * normaltbl表数据的准备 start为插入起始数据,end为插入结束数据,部分name字段插入数据为null */ public void normaltblNullPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + normaltblTableName, null); mysqlUpdateData("delete from " + normaltblTableName, null); String sql = "REPLACE INTO " + normaltblTableName + " (pk,id,gmt_create,gmt_timestamp,gmt_datetime,name,floatCol) VALUES(?,?,?,?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); PreparedStatement andorPs = andorCon.prepareStatement(sql); for (int i = start; i < end / 2; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i * 100); ps.setObject(2, i * 100); andorPs.setObject(3, gmtDay); ps.setObject(3, gmtDay); andorPs.setObject(4, gmt); ps.setObject(4, gmt); andorPs.setObject(5, gmt); ps.setObject(5, gmt); andorPs.setObject(6, name); ps.setObject(6, name); andorPs.setObject(7, 1.1); ps.setObject(7, 1.1); andorPs.execute(); ps.addBatch(); } for (int i = end / 2; i < end - 1; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i * 100); ps.setObject(2, i * 100); andorPs.setObject(3, gmtNext); ps.setObject(3, gmtNext); andorPs.setObject(4, gmtNext); ps.setObject(4, gmtNext); andorPs.setObject(5, gmtNext); ps.setObject(5, gmtNext); andorPs.setObject(6, null); ps.setObject(6, null); andorPs.setObject(7, 1.1); ps.setObject(7, 1.1); andorPs.execute(); ps.addBatch(); } for (int i = end - 1; i < end; i++) { andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(2, i * 100); ps.setObject(2, i * 100); andorPs.setObject(3, gmtBefore); ps.setObject(3, gmtBefore); andorPs.setObject(4, gmtBefore); ps.setObject(4, gmtBefore); andorPs.setObject(5, gmtBefore); ps.setObject(5, gmtBefore); andorPs.setObject(6, name1); ps.setObject(6, name1); andorPs.setObject(7, (float) (i * 0.01)); ps.setObject(7, (float) (i * 0.01)); andorPs.execute(); ps.addBatch(); } ps.executeBatch(); con.commit(); } /** * hostinfo表数据的准备 start为插入起始数据,end为插入结束数据 */ public void hostinfoPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + host_info, null); mysqlUpdateData("delete from " + host_info, null); try { String sql = "replace into " + host_info + "(host_id,host_name,hostgroup_id,station_id) values(?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, "hostname" + i); andorPs.setObject(2, "hostname" + i); ps.setObject(3, Long.parseLong(i + "")); andorPs.setObject(3, Long.parseLong(i + "")); ps.setObject(4, "station" + i / 2); andorPs.setObject(4, "station" + i / 2); andorPs.execute(); ps.addBatch(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } ; } /** * 插入hostinfo表数据,其中start为插入起始数据,end为插入结束数据 groupidValue为字段hostgroup_id的值 */ public void hostinfoDataAdd(int start, int end, long groupidValue) throws Exception, SQLException { try { String sql = "replace into " + host_info + "(host_id,host_name,hostgroup_id,station_id) values(?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, "hostname" + i); andorPs.setObject(2, "hostname" + i); ps.setObject(3, groupidValue); andorPs.setObject(3, groupidValue); ps.setObject(4, "station" + i / 2); andorPs.setObject(4, "station" + i / 2); andorPs.execute(); ps.addBatch(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } public void hostgroupPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + hostgroup, null); mysqlUpdateData("delete from " + hostgroup, null); try { String sql = "replace into " + hostgroup + "(hostgroup_id,hostgroup_name,module_id,station_id) values(?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, "hostgroupname" + i); andorPs.setObject(2, "hostgroupname" + i); ps.setObject(3, Long.parseLong(i + "")); andorPs.setObject(3, Long.parseLong(i + "")); ps.setObject(4, "station" + i / 2); andorPs.setObject(4, "station" + i / 2); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } /** * 插入hostinfo表数据 start为插入起始数据,end为插入结束数据 其中moduleIdValue为字段module_id的值 */ public void hostgroupDataAdd(int start, int end, long moduleIdValue) throws Exception, SQLException { try { String sql = "replace into " + hostgroup + "(hostgroup_id,hostgroup_name,module_id,station_id) values(?,?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, "hostgroupname" + i); andorPs.setObject(2, "hostgroupname" + i); ps.setObject(3, moduleIdValue); andorPs.setObject(3, moduleIdValue); ps.setObject(4, "station" + i / 2); andorPs.setObject(4, "station" + i / 2); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } /** * hostgroupInfo表数据的准备 start为插入起始数据,end为插入结束数据 */ public void hostgroupInfoPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + hostgroup_info, null); mysqlUpdateData("delete from " + hostgroup_info, null); try { String sql = "replace into " + hostgroup_info + "(hostgroup_id,hostgroup_name,station_id) values(?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, "hostgroupname" + i); andorPs.setObject(2, "hostgroupname" + i); ps.setObject(3, "station" + i / 2); andorPs.setObject(3, "station" + i / 2); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } ; } /** * module_info表数据的准备 start为插入起始数据,end为插入结束数据 */ public void module_infoPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + module_info, null); mysqlUpdateData("delete from " + module_info, null); try { String sql = "replace into " + module_info + "(module_id,product_id,module_name) values(?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = 0; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, Long.parseLong(i + "")); andorPs.setObject(2, Long.parseLong(i + "")); ps.setObject(3, "module" + i); andorPs.setObject(3, "module" + i); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } /** * module_host表数据的准备 start为插入起始数据,end为插入结束数据 */ public void module_hostPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + module_host, null); mysqlUpdateData("delete from " + module_host, null); try { String sql = "replace into " + module_host + "(id,module_id,host_id) values(?,?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, Long.parseLong(i / 2 + "")); andorPs.setObject(2, Long.parseLong(i / 2 + "")); ps.setObject(3, Long.parseLong(i % 3 + "")); andorPs.setObject(3, Long.parseLong(i % 3 + "")); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } /** * 为like测试准备单独的2条normaltbl表数据 */ public void normaltblTwoPrepare() throws Exception { String sql = "REPLACE INTO " + normaltblTableName + "(pk,name,gmt_create) VALUES(?,?,?)"; List<Object> param = new ArrayList<Object>(); param.clear(); param.add(20l); param.add(name1); param.add(gmtDay); andorUpdateData(sql, param); mysqlUpdateData(sql, param); sql = "REPLACE INTO " + normaltblTableName + "(pk,name,gmt_create) VALUES(?,?,?)"; param.clear(); param.add(21l); param.add(name2); param.add(gmtDay); andorUpdateData(sql, param); mysqlUpdateData(sql, param); } /** * student表数据的准备 start为插入起始数据,end为插入结束数据 */ public void studentPrepare(int start, int end) throws Exception, SQLException { andorUpdateData("delete from " + studentTableName, null); mysqlUpdateData("delete from " + studentTableName, null); try { String sql = "replace into " + studentTableName + " (id,name) values(?,?)"; con.setAutoCommit(false); ps = con.prepareStatement(sql); for (int i = start; i < end; i++) { andorPs = andorCon.prepareStatement(sql); ps.setObject(1, Long.parseLong(i + "")); andorPs.setObject(1, Long.parseLong(i + "")); ps.setObject(2, name); andorPs.setObject(2, name); ps.addBatch(); andorPs.execute(); } ps.executeBatch(); con.commit(); } catch (Exception ex) { throw new TddlRuntimeException(ex); } finally { } } }