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

如何在java中消除SQL结果中的空值?,java,sql,eclipse,arraylist,tostring,Java,Sql,Eclipse,Arraylist,Tostring,我真的很难解决这个问题,如果可以的话,请帮助我 这个方法的作用是,它通过执行SQL查询检索数据库中的标记,将结果存储在ArrayList中,然后返回它 我的数据库包含3个属性:名称、标记、位置。我只想检索标记并单独显示它们,而不显示其他属性,因此它将类似于此格式,例如[tag1,tag2,tag3] 由于我的toString方法中的格式是这样的,我不能将其更改为只打印标记,因为我有另一个方法来同时显示所有这些属性 @Override public String toString() {

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

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

我的数据库包含3个属性:名称、标记、位置。我只想检索标记并单独显示它们,而不显示其他属性,因此它将类似于此格式,例如[tag1,tag2,tag3]

由于我的toString方法中的格式是这样的,我不能将其更改为只打印标记,因为我有另一个方法来同时显示所有这些属性

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

    return p;
}
当我选择只选择输出标记时,我得到了其他属性的null值,结果如下:[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;

}
public ArrayList getWalletTag()抛出SQLException{
系统输出打印项次(“------------------------------”);
System.out.println(“检索所有标签”);
连接dbConnection=null;
Statement=null;
ResultSet ResultSet=null;
String query=“从钱包中选择标签;”;
ArrayList WalletsList=新的ArrayList();
试一试{
dbConnection=getDBConnection();
statement=dbConnection.createStatement();
System.out.println(查询);
resultset=语句.executeQuery(查询);
while(resultset.next()){
//字符串名称=resultset.getString(“名称”);
//String Loc=resultset.getString(“位置”);
String tag=resultset.getString(“tag”);
WalletsList.add(新钱包(标签));
}
} 
最后{
if(resultset!=null){
resultset.close();
}
if(语句!=null){
语句。close();
}
if(resultset!=null){
dbConnection.close();
}
}
归还钱包清单;
}
我的控制器代码:

    walletDAO dao2 = new walletDAO();


            ArrayList<wallet>  u ;

            try{

            u=dao2.getWalletTag();
walletDAO dao2=新的walletDAO();
ArrayList u;
试一试{
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();
}