如何在Java的SQL结果中消除空值?

问题描述 投票:1回答:2

我真的很想解决这个问题,如果可以,请帮助我。

此方法的作用是,它通过执行SQL查询来检索我在数据库中拥有的标签,并将结果存储在ArrayList中,然后将其返回。

我的数据库包含3个属性:名称,标签,位置。我只想检索标签并单独显示它们而不显示其他属性的地方,因此就像这种格式,例如[tag1,tag2,tag3]

而且因为我的toString方法中的格式是这样,所以我不能将其更改为仅打印标签,因为我还有另一种方法可以一起显示所有这些属性。

@Override
public String toString()
{
    String p = (this.Name + ','+ this.Location+','+ this.Tag);

    return p;
}

当我选择仅选择输出标签时,我得到其他属性的空值,并且得到如下结果:[null,null,rfid1,null,null,rfid2,null,null,rfid3]

所以我如何摆脱这些空值而只显示标记位?

我获取标签值的方法:

public ArrayList<wallet> getWalletTag() throws SQLException {
    System.out.println("----------------");
    System.out.println("Retrieve all tags");

    Connection dbConnection = null;
    Statement statement = null;
    ResultSet resultset = null;     
    String query = "SELECT Tag FROM wallets;";

    ArrayList<wallet> WalletsList = new ArrayList<>();      
    try {
        dbConnection = getDBConnection();
        statement = dbConnection.createStatement();
        System.out.println(query);
        resultset = statement.executeQuery(query);

        while (resultset.next()) {                  
            //String Name =  resultset.getString("Name");
            //String Loc =  resultset.getString("Location");
            String tag =  resultset.getString("Tag");

            WalletsList.add(new wallet (tag));
        }
    } 
    finally {

        if (resultset !=null){
            resultset.close();
        }
        if (statement !=null) {
            statement.close();
        }

        if (resultset !=null) {
            dbConnection.close();
        }
    }
    return WalletsList;

}

我的控制器代码:

    walletDAO dao2 = new walletDAO();


            ArrayList<wallet>  u ;

            try{

            u=dao2.getWalletTag();
java sql eclipse arraylist tostring
2个回答
0
投票

这里只是一个简短而又肮脏的修复-肯定有更好,更合适的解决方案... :)

    //quick and dirty fix
    @Override
    public String toString()
    {
      String NameHandle = "";
      String LocationHandle = "";

     if(this.Name!=null): NameHandle = this.Name + ",";
     if(this.Location!=null): LocationHandle = this.Name + ",";

      String p = (this.Name + this.Location + this.Tag);

     return p;
     }

0
投票
@Override
public String toString() {
    StringBuilder sb = new StringBuilder();
    if(Objects.nonNull(this.name)) {
        sb.append(this.name+",");
    }
    if(Objects.nonNull(this.location)) {
        sb.append(this.location+",");
    }
    if(Objects.nonNull(this.tag)) {
        sb.append(this.tag);
    }

    return sb.toString();
}
© www.soinside.com 2019 - 2024. All rights reserved.