Java 使用SQL server数据库在数据库中插入多行
我正在使用SQL server数据库开发Struts2应用程序。 我有一个包含两行数据的表单,当我插入数据时,数据不会插入到同一行中,例如: 我想要的结果是: 这是我在jsp中输入它的方式: 如您所见,您没有输入任何空值 我的班级身份: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
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调试代码,如果对此不满意,只需在插入之前打印您有多少对象,还可以打印插入的行数。