Java 如何将数据库值映射到对象数组?

Java 如何将数据库值映射到对象数组?,java,jdbc,Java,Jdbc,以下是C的代码: 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

以下是C的代码:

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;    
}
在这里,我无法将ssn和客户名称传递到
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;
   }
}
仅供参考:
列表
,以下代码使用可重用列表,
new
仅在
target==null
时发生(例如首次使用)

公共列表getC(列表目标)抛出SQLException、ClassNotFoundException{ if(target==null){ target=newlinkedlist(); } 否则{ target.clear(); } forName(“sun.jdbc.odbc.JdbcOdbcDriver”); String url=“jdbc:odbc:Mydb”; 字符串user=“user1”; 字符串password=“password”; Connection con=DriverManager.getConnection(url、用户、密码); 语句smt=con.createStatement(); String query=“从客户选择ssn、cname”; ResultSet rs=smt.executeQuery(查询); while(rs.next()){ 添加(新的C(rs.getString(“cname”)、rs.getString(“ssn”)); } 回报目标; } 仅供参考:
列表
,以下代码使用可重用列表,
new
仅在
target==null
时发生(例如首次使用)

公共列表getC(列表目标)抛出SQLException、ClassNotFoundException{ if(target==null){ target=newlinkedlist(); } 否则{ target.clear(); } forName(“sun.jdbc.odbc.JdbcOdbcDriver”); String url=“jdbc:odbc:Mydb”; 字符串user=“user1”; 字符串password=“password”; Connection con=DriverManager.getConnection(url、用户、密码); 语句smt=con.createStatement(); String query=“从客户选择ssn、cname”; ResultSet rs=smt.executeQuery(查询); while(rs.next()){ 添加(新的C(rs.getString(“cname”)、rs.getString(“ssn”)); } 回报目标; } 您可以执行以下操作:

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;
}
List List=new ArrayList();
while(rs.next()){
字符串ssn=rs.getString(“ssn”);
字符串customer_name=rs.getString(“cname”);
C=新C(ssn,客户名称);
增加(c)项;
}
C[]lc=新的C[list.size()];
名单.托雷(lc);
您可以执行以下操作:

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;
}
List List=new ArrayList();
while(rs.next()){
字符串ssn=rs.getString(“ssn”);
字符串customer_name=rs.getString(“cname”);
C=新C(ssn,客户名称);
增加(c)项;
}
C[]lc=新的C[list.size()];
名单.托雷(lc);

请发布CW的代码您遇到了什么问题?您忘记了实际创建C对象(顺便说一句,名称不好)并将它们添加到数组中。这是你真正的问题吗?这真的需要一个问题吗?请发布CW的代码你有什么问题?你忘记了实际创建C对象(顺便说一句坏名字)并将它们添加到数组中。这是你真正的问题吗?这真的需要一个问题吗?您假设存在一个特定的
C
构造函数。是什么让你认为它确实存在?你假设存在一个特殊的
C
构造函数。是什么让你认为它确实存在?我得到了上面的nullpointerexception。下面是代码公共类C{private String name;private String SocialSecurityNumber;public(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 setsn(String SocialSecurityNumber){this.SocialSecurityNumber=SocialSecurityNumber;}我得到了上面的nullpointerexception。这是public类的代码{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;}
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);