Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SQL server数据库在数据库中插入多行_Java_Jdbc_Batch Processing - Fatal编程技术网

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

Java 使用SQL server数据库在数据库中插入多行,java,jdbc,batch-processing,Java,Jdbc,Batch Processing,我正在使用SQL server数据库开发Struts2应用程序。 我有一个包含两行数据的表单,当我插入数据时,数据不会插入到同一行中,例如: 我想要的结果是: 这是我在jsp中输入它的方式: 如您所见,您没有输入任何空值 我的班级身份: public class CoordenadasP { String CordNort; String CordSurr; public CoordenadasP(String CordSurr, String CordNort ){ this

我正在使用SQL server数据库开发Struts2应用程序。 我有一个包含两行数据的表单,当我插入数据时,数据不会插入到同一行中,例如:

我想要的结果是:

这是我在jsp中输入它的方式:

如您所见,您没有输入任何空值

我的班级身份:

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();
   }
}
公共静态字符串addMoreDetails(列表跳线)引发异常
{  
尝试
{
Connection con=Coneccion.getConnection();
PreparedStatement ps=con.prepareStatement(“插入到Coordenadass(CodN,CodS)值(?,);”;
用于(CoordenadasP跳线:跳线){
ps.setString(1,cord.getCordNort());
ps.setString(2,cord.getCordSurr());
ps.addBatch();
}
int counts[]=ps.executeBatch();
如果(counts.length==cords.size())
返回“someMEssage”;
其他的
返回null;
}
捕获(例外情况除外)
{
返回例如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;

}
公共类ActionCoordenadass扩展了ActionSupport{
专用阵列列表线;
公共阵列列表getCords(){
返回线;
}
公用无效设置跳线(ArrayList跳线){
这条线=线;
}
公共字符串inserCord()引发异常{
ModelCoordenaP ad=新的ModelCoordenaP();
ModelCoordenaP.addMoreDetails(跳线);
回归成功;
}
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>

条例十:
条例Y:
拯救
回来!

我知道我做错了什么,但我不知道

嗨@DrGun Gun欢迎来到SO

你提供的信息是不够的,但我猜问题在于

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

     ps.addBatch();
}
这里的用于(CoordenadasP cord:cords){

插入第六行的原因是因为循环执行了六次,所以首先要正确地获取该对象中的数据,然后就可以开始了


希望这能有所帮助。

我想
null
值永远不会发送到您的操作中。您最好发布
.jsp
代码以及完整的操作代码(
cords
声明和用法)代码与Struts2有关吗?谢谢你这么快回答,更新我的问题,我不明白为什么逐行记录都没有。谢谢你回答我刚刚更新了我的问题,我仍然没有得到预期的结果。这仍然是不够的,显然你写的模型不是模型也不是控制器。请尝试nd调试代码,如果对此不满意,只需在插入之前打印您有多少对象,还可以打印插入的行数。