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