Java 在for循环中使用SetString
我在for循环中使用Java 在for循环中使用SetString,java,for-loop,prepared-statement,Java,For Loop,Prepared Statement,我在for循环中使用setString时遇到问题 我要将这一行插入数据库中的表中 12.S777.V77.D88.货车/1.火车/889 777代表二等舱的乘客人数。问题是乘客人数是可变的,最多可以有3种情况,如下例: 12.F123.S777.V77.货车/1.火车/889 代码 String rs=“插入ligne1(日期、immatr、编号、乘客、版本、货车、列车)值(?、、?、?、?)”; 准备好的报表ps=conn.prepareStatement(rs); ps.setString(
setString
时遇到问题
我要将这一行插入数据库中的表中
12.S777.V77.D88.货车/1.火车/889
777代表二等舱的乘客人数。问题是乘客人数是可变的,最多可以有3种情况,如下例:
12.F123.S777.V77.货车/1.火车/889
代码
String rs=“插入ligne1(日期、immatr、编号、乘客、版本、货车、列车)值(?、、?、?、?)”;
准备好的报表ps=conn.prepareStatement(rs);
ps.setString(1,消息[0]);
ps.setString(2,消息[1]);
ps.setString(3,消息[2]);
int b=0;
对于(b=4;b而言,您的输入格式似乎具有可变数量的字段。在这种情况下,仅在
处拆分字符串是不够的,您必须解析数据
我将为一辆货车实现一个简单的值持有者类和一些基于输入字符串创建实例的逻辑。例如:
public class Ligne1 {
private String date;
private int seatsInFirstClass;
private int seatsInSecondClass;
// ...
public Ligne1(String data) {
String values[] = data.split("\.");
for (String value:values) {
if (value.startsWith("F")) {
setSeatsInFirstClass(value);
} else if (value.startsWith("wagon")) {
setWagon(value);
}
// ...
}
}
private void setSeatsInFirstClass(String value) {
seatsInFirstClass = Integer.parseInt(value.substring(1));
}
public int getSeatsInFirstClass() {
return seatsInFirstClass;
}
// if we need the total
public int getNumberOfPassengers() {
return seatsInFirstClass + seatsInSecondClass;
}
// ...
}
最后,使用Ligne1
的实例及其getter方法设置准备语句的值
(注意:代码只对我选择的解决方案给出了一个提示,它是不完整的,不会处理源数据中的错误)我不理解循环或变量是什么。您的SQL语句有六个占位符,因此您需要精确绑定六个参数。嗯,我真的不理解。问题到底出在哪里(5,…)
?您的for
循环似乎没有意义。下次,请适当缩进您的代码。好的,我知道我的代码很乱:$但是我如何将字符串表插入数据库中的表中
public class Ligne1 {
private String date;
private int seatsInFirstClass;
private int seatsInSecondClass;
// ...
public Ligne1(String data) {
String values[] = data.split("\.");
for (String value:values) {
if (value.startsWith("F")) {
setSeatsInFirstClass(value);
} else if (value.startsWith("wagon")) {
setWagon(value);
}
// ...
}
}
private void setSeatsInFirstClass(String value) {
seatsInFirstClass = Integer.parseInt(value.substring(1));
}
public int getSeatsInFirstClass() {
return seatsInFirstClass;
}
// if we need the total
public int getNumberOfPassengers() {
return seatsInFirstClass + seatsInSecondClass;
}
// ...
}