如何去除 SQL 结果中 java 中的空值?

How do I get rid of null values in my SQL results in java?

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

这个方法的作用是,它通过执行 SQL 查询检索我在数据库中的标签,将结果存储在 ArrayList 中,然后 return 它。

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

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

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

    return p;
}

当我选择 select 仅输出标签时,我得到其他属性的空值,我得到的结果如下:[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();

这里只是一个简短的快速修复 - 当然还有更好更合适的解决方案...:)

    //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.Location+ ",";}

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

     return p;
     }
@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();
}

我相信这会对你有所帮助。