日期:2014-05-20  浏览次数:20771 次

java beans sql 查询
public static ArrayList<Accounts> getAccounts(String sql, Connection con) {
  // sql = "SELECT ID,NUMBER,NAME FROM ACCOUNT";
  // sql = "SELECT * FROM ACCOUNT";

  ArrayList<Accounts> aList = new ArrayList<Accounts>();
  ResultSet rs = null;
  try {
  rs = con.prepareStatement(sql).executeQuery();
  while (rs.next()) {
  Accounts a = new Accounts();
  a.setId(rs.getInt("ID"));
  a.setNumber(rs.getString("NUMBER"));
  a.setName(rs.getString("NAME"));
  try{
  a.setFCA(rs.getString("FCA"));
  }catch(Exception e){
  a.setFCA(null);
  }
  try{
  a.setSign(rs.getBoolean("SIGN"));
  }catch(Exception e){
  a.setSign(false);
  }
  try{
  a.setCashFlow(rs.getBoolean("CASHFLOW"));
  }catch(Exception e){
  a.setCashFlow(false);
  }
  try{
  a.setBal(rs.getBoolean("BAL"));
  }catch(Exception e){
  a.setBal(false);
  }
  aList.add(a);
  }
  } catch (SQLException ex) {
  Logger.getLogger(Accounts.class.getName()).log(Level.SEVERE, null, ex);
  } finally {
  if (rs != null) {
  try {
  rs.close();
  } catch (SQLException ex) {
  Logger.getLogger(Accounts.class.getName()).log(Level.SEVERE, null, ex);
  }
  }
  }

  return aList;
  }
以上的方法我想让我的所有查询该表的语句都能使用(无论多少列,只要是查询“ACCOUNT”表),比如“SELECT * FROM ACCOUNT”和“SELECT ID,NUMBER FROM ACCOUNT”都可以使用,
我上面的方法可以达到这样的效果,但是我同事说不能这么写,不知道为什么,如果真的不能这么写,那应该怎么写,请结合我的代码给个例子,谢谢

------解决方案--------------------
你的表结构和Account类结构是怎么样的?还有,你同事为什么说不能这么写
------解决方案--------------------
什么叫思想有问题,写程序又不是搞文化大革命,两个凡是,搞笑么