我有一个类,它包含表中的所有列作为变量。我想将所有表值作为该类的对象。这是我的表结构,
|col1 | col2 | col3 |
|---------------------|
|a1 | b1 | c1 |
|a2 | b2 | c2 |
我的课是,
public class tab_class{
String col1;
String col2;
String col3;
}
我想要的是我想获取表的值并将这些值存储在每个类变量中。假设我有一个名为'rs'的表的结果集,然后我做了这样的事情,
tab_class tbcl = new tab_class();
while(rs.next()){
tbcl.col1 = rs.getString("col1");
tbcl.col2 = rs.getString("col4");
tbcl.col3 = rs.getString("col3");
}
现在我有一个'tab_class'对象,其值为表格的一行。 现在我想要表的每一行有多个实例。
我怎样才能做到这一点。非常感谢您的想法。
答案 0 :(得分:0)
您的代码有问题:
tab_class tbcl = new tab_class();
while(rs.next()){
tbcl.col1 = rs.getString("col1");
tbcl.col2 = rs.getString("col4");
tbcl.col3 = rs.getString("col3");
}
我认为你需要简单地创建一个感兴趣类型的对象的ArrayList,因为你需要为ResultSet中的每一行创建一个新的tab_class对象。例如:
List<tab_class> tabList = new ArrayList<>();
while(rs.next()){
String col1 = rs.getString("col1");
String col2 = rs.getString("col4");
String col3 = rs.getString("col3");
tabList.add(new tab_class( col1, col2, col3); // assuming you have this type of constructor
}
这将创建一个ArrayList,它将表中的所有行保存为tab_class的对象。同样,这假设tab_class有一个带3个字符串的构造函数。如果没有,那么你可以调用setter方法。无论你做什么,都不要将tab_class字段公开或直接设置它们,因为它违背了OOP原则。
另外,您需要学习并使用Java naming conventions。变量名都应以较低的字母开头,而类名以大写字母开头。了解并遵循这一点将使我们能够更好地理解您的代码,并使您能够更好地理解其他代码。
例如,tab_class可以是:
class MyTab {
// I use constants or an enum to avoid typo errors
public static final String COLUMN_1 = "col1";
public static final String COLUMN_2 = "col2";
public static final String COLUMN_3 = "col3";
private String col1;
private String col2;
private String col3;
public MyTab(String col1, String col2, String col3) {
this.col1 = col1;
this.col2 = col2;
this.col3 = col3;
}
public String getCol1() {
return col1;
}
public String getCol2() {
return col2;
}
public String getCol3() {
return col3;
}
// you'll want an equals, haschCode and toString methods
}
循环:
List<MyTab> tabList = new ArrayList<>();
while (rs.next()) {
// I use constants or an enum to avoid typo errors
String col1 = rs.getString(MyTab.COLUMN_1);
String col2 = rs.getString(MyTab.COLUMN_2);
String col3 = rs.getString(MyTab.COLUMN_3);
tabList.add(new MyTab(col1, col2, col3));
}
答案 1 :(得分:0)
你可以像@Hovercraft Full Of Eels那样说。 或者为你的字段创建一个getter和setter方法
像
public class tab_class implements Serializable{
private static final long serialVersionUID = 1L;
private String col1;
private String col2;
private String col3;
public void setCol1(String col1){
this.col1 = col1;
}
public String getCol1(){
return col1;
}
public void setCol2(String col2){
this.col2 = col2;
}
public String getCol2(){
return col2;
}
public void setCol3(String col3){
this.col3 = col3;
}
public String getCol3(){
return col3;
}
}
然后
List<tab_class> tbcl_list = new ArrayList<>();
while(rs.next()){
tab_class tblc = new tab_class();
tbcl.setCol1(rs.getString("col1"));
tbcl.setCol2(rs.getString("col2"));
tbcl.setCol3(rs.getString("col3"));
tbcl_list.add(tbcl);
}
现在在tbcl_list中,您将所有行都作为对象。