[英]How to map the database values to object array?
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;
}
Here is the code of C: 这是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;
}
}
Here I am having problem in passing ssn and customer_name to the C[]
array 我在将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" ));
}
FYI: A List<C>
will be better than an array of C
, the following code use a reusable list, new
occurs only when target == null
(first time use for example). 仅供参考: List<C>
会比C
数组更好 ,以下代码使用可重用列表,仅当target == null
(例如,首次使用)时, new
列表才会出现。
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;
}
You can do this: 你可以这样做:
List<C> list = new ArrayList<C>();
while (rs.next()){
String ssn = rs.getString("ssn");
String customer_name = rs.getString("cname");
C c = new C(ssn, customer_name);
list.add(c);
}
C[] lc = new C[list.size()];
list.toArray(lc);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.