public C[] getC() throws SQLException, ClassNotFoundException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Mydb";
String user = "user1";
String password = "password";
Connection con = DriverManager.getConnection(url,user,password);
Statement smt= con.createStatement();
String query = "Select ssn, cname from customer";
ResultSet rs = smt.executeQuery(query);
C [] c = new C[getNumberOfCustomers()];
while (rs.next()){
String ssn = rs.getString("ssn");
String customer_name = rs.getString("cname");
}
return custarray;
}
这是C的代码:
public class C {
private String name;
private String SocialSecurityNumber;
public C(String name, String SocialSecurityNumber) {
this.name = name;
this.SocialSecurityNumber = SocialSecurityNumber;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getSocialSecurityNumber() { return SocialSecurityNumber; }
public void setSsn(String SocialSecurityNumber ) {
this.SocialSecurityNumber = SocialSecurityNumber;
}
}
在这里,我在将 ssn 和 customer_name 传递到 C[]
数组时遇到问题
最佳答案
C [] c = new C[getNumberOfCustomers()];
int i = 0;
while (rs.next()){
c[i++] = new C( rs.getString( "cname" ), rs.getString( "ssn" ));
}
仅供引用:A List<C>
will be better than an array of C
,以下代码使用可重用列表,new
仅当 target == null
时发生(以第一次使用为例)。
public List<C> getC( List<C> target ) throws SQLException,ClassNotFoundException{
if( target == null ) {
target = new LinkedList<C>();
}
else {
target.clear();
}
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Mydb";
String user = "user1";
String password = "password";
Connection con = DriverManager.getConnection(url,user,password);
Statement smt= con.createStatement();
String query = "Select ssn, cname from customer";
ResultSet rs = smt.executeQuery(query);
while( rs.next()){
target.add( new C( rs.getString("cname"), rs.getString("ssn")));
}
return target;
}
关于java - 如何将数据库值映射到对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549307/