小弟想在数据库插入多条数据,不能写死,要动态的,因为我也不知道插入多少条,求格式

解决方案 »

  1.   


    public class AddShopOperation extends Operation{
    public Result execute() throws OpertionException {

    Object orderid = this.getParameter("orderid");
    Object shopname = this.getParameter("shopname");
    Object totalprice = this.getParameter("totalprice");
    Object deliverprice = this.getParameter("deliverprice");
    Object finalprice = this.getParameter("finalprice");

    String sql = "insert into shop(orderid,shopname,totalprice,deliverprice,finalprice,addtime) values(?,?,?,?,?,now())";

    Object [] a = {orderid,shopname,totalprice,deliverprice,finalprice};
    int c = this.getDataBaseProvider().executeUpdate(sql, a);

    if(c>0){
    return new AddShopSuccessful();
    }else{
    return new AddShopFail();
    }
    }
    }
    这个是数据操作。这个是测试public class AddShopTest extends BreadthTestCase{
    public void testAddShopSuccessful(){

    Result rs = null;

    OperationWorker worker = new OperationWorker(AddShopOperation.class);
    worker.addParameter("orderid", "21256");
    worker.addParameter("shopname", "nihao");
    worker.addParameter("totalprice", "1000");
    worker.addParameter("deliverprice", "100");
    worker.addParameter("finalprice", "80000");
    worker.addParameter("isdel", "0");

    try{
    rs = worker.execute();
    }catch(OpertionException e){
    e.printStackTrace();
    }
    assertTrue(rs instanceof AddShopSuccessful);
    }
    }
      

  2.   

    在连接语句中加入 allowMultiQueries=true
    然后可以把多条SQL拼起来一起传递给mysql,每条语句用 ; 分割
      

  3.   

     
    List<OperationWorker> workers ;
    for(int i = 0 ; i < workers.size();i++){
          .....
          PreparedStatement#addBatch(); 
    }
    PreparedStatement#excuteBatch();