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

标签 java jdbc

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/

相关文章:

java - 如何在 Gwt 中获取 @ 的关键代码

java - 如何访问链表数组?

java - SimpleJdbcCall 不能调用多个程序

java - 有没有办法使用 ant 有条件地复制文件?

java - 虚拟轨迹球实现

Java 8 -> 根据其他列表对列表进行排序

java - DatabaseMetaData.getColumns 为同义词返回一个空的结果集

hibernate - 是 Hibernate、PostgreSQL 还是 Spring Boot : Unexpected error trying to gauge level of JDBC REF_CURSOR support : null

java - 从 jdbc ResultSet 获取数据行

java - JDBC中如何使用 "set @variable = 0"