使用SQL Server数据库在数据库中插入多行

时间:2017-10-25 05:17:09

标签: java jdbc batch-processing

我正在使用SQL服务器数据库开发Struts 2应用程序。 我有一个包含2行数据的表单,当我插入数据时,数据不会插入同一行,例如:enter image description here

我想要的结果是:enter image description here

这是我在jsp中输入的方式:enter image description here

如您所见,您不输入任何空值

我的班级身份:

public class CoordenadasP {


String CordNort;
String CordSurr;

public CoordenadasP(String CordSurr, String CordNort ){


    this.CordNort=CordNort;
    this.CordSurr=CordSurr;
}


public CoordenadasP(){



}



public String getCordNort() {
    return CordNort;
}


public void setCordNort(String cordNort) {
    CordNort = cordNort;
}


public String getCordSurr() {
    return CordSurr;
}


public void setCordSurr(String cordSurr) {
    CordSurr = cordSurr;
}



}

我的班级模特:

public static  String addMoreDetails(List<CoordenadasP> cords) throws Exception
{  
    try
    {

        Connection con=Coneccion.getConnection();
        PreparedStatement ps=con.prepareStatement("insert into Coordenadass (CodN,CodS) values(?,?);");

     for(CoordenadasP cord : cords) {
         ps.setString(1, cord.getCordNort());
         ps.setString(2, cord.getCordSurr());

         ps.addBatch();
    }
    int counts[] = ps.executeBatch();
    if ( counts.length == cords.size() )
        return "someMEssage";
    else
        return null; 
   }
   catch(Exception ex)
   {
    return ex.toString();
   }
}

和我的行动:

public class ActionCoordenadass extends ActionSupport{


private ArrayList <CoordenadasP>  cords;



public ArrayList<CoordenadasP> getCords() {
    return cords;
}



public void setCords(ArrayList<CoordenadasP> cords) {
    this.cords = cords;
}



public String inserCord() throws Exception{
    ModelCoordenaP ad = new ModelCoordenaP();
    ModelCoordenaP.addMoreDetails(cords);

    return SUCCESS;

}

mi JSP:

</head>
    <body>
<s:form role="form" action="inserCord" method="POST">
               <table>
<tr>
    <td width="10%">Reg X:</td>
    <td width="15%" >Reg Y :</td>

</tr>
  <tr>
     <td  width="30%" ><input  type="text" name="details.CordNort" /></td>

    <td  width="30%" ><input  type="text" name="details.CordSurr"  /></td>
  </tr>
  <tr>
    <td  width="30%"><input type="text" name="details.CordNort"  ></td>
  <td  width="30%"><input type="text" name="details.CordSurr"  ></td> 
  </tr>
<tr>
 <td  width="30%"><input type="text" name="details.CordNort"  ></td>
  <td  width="30%"><input type="text" name="details.CordSurr" ></td>
</tr>
</table>
              <div class="box-footer">
                <button type="submit" class="btn btn-primary">SAVE</button>
              </div> 
            </s:form>
     <s:form role="form" action="consulta" method="POST"> 
              <div class="box-footer">
                <button href="#" type="submit" class="btn btn-primary">RETURN!</button>
              </div>
      </s:form>

我知道我做错了但我不知道

1 个答案:

答案 0 :(得分:1)

你好@DrGun枪欢迎来到SO,

您提供的信息不足,但我的猜测是问题在于

for(CoordenadasP cord : cords) {
     ps.setString(1, cord.getCordNort());
     ps.setString(2, cord.getCordSurr());

     ps.addBatch();
}

for(CoordenadasP cord:cords){ line。

插入六行的原因是因为该循环正在被执行六次,所以首先在该对象中正确获取数据,你将会很高兴。!

希望这有帮助。