我如何忽略空值?

问题描述 投票:0回答:3

在我的数据库中,我有4个数据字段,也有一个方法(getWalletName),在该方法中,我发送一个SQL查询以仅检索4个数据中的一个数据,但检索并显示了结果。我可以看到所需的数据旁边的其他数据,例如:

SELECT Name FROM wallets WHERE Location ='ROOME' ;

[unknown,unknown,unknown,Omar]

[我希望将其显示为[Omar]的位置,请记住不要修改我的构造函数,因为我需要这种方式。我已经在下面的wallet类中尝试了该代码,但没有成功!任何帮助将不胜感激

钱包类:

public class wallet {
private String Name;
private String Location;
private String Tag;
private String Reader;


public wallet(String Name , String Location, String Tag, String Reader)
{       
    this.Name = Name;
    this.Location = Location;
    this.Tag = Tag; 
    this.Reader = Reader;   

}


public wallet(String Reader)
{       
    this.Reader = Reader;
    this.Name = "unknown";
    this.Location = "unknown";
    this.Tag = "unknown";   
}

public wallet(String Location,String Tag) {
    this.Location = Location;
    this.Tag = Tag;
}

public String getWalletName()
{
    return Name;
}
public void setWalletName(String Name)
{
    this.Name = Name;
}

public String getWalletLocation()
{
    return Location;
}
public void setWalletLocation(String Location)
{
    this.Location = Location;
}

public String getWalletTag()
{
    return Tag;
}
public void setWalletTag(String Tag)
{
    this.Tag = Tag;
}


@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+",");
        }
        if(Objects.nonNull(this.Reader)) {
            sb.append(this.Reader);
        }

        return sb.toString();
}   

}

getWalletName方法:

public ArrayList<wallet> getWalletName(String Location) throws SQLException {
    System.out.println("----------------");
    System.out.println("Retrieve the wallet name");

    //Connection dbConnection = null;
    //Statement statement = null;
    ResultSet resultset = null;     
    String query = "SELECT Name FROM wallets WHERE Location ='" + Location + "' ;";
    ArrayList<wallet> WalletsList = new ArrayList<>();      
    try {
        getConnection();
        //statement = dbConnection.createStatement();
        System.out.println(query);
        resultset = stmt.executeQuery(query);

        while (resultset.next()) {

            String Name =  resultset.getString("Name");
            WalletsList.add(new wallet (Name));
        }
    } 
    finally {

    //  closeConnection();

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

        if (resultset !=null) {
            closeConnection();
        }
    }
    return WalletsList;

}

在我的数据库中,我有4个数据字段,还有一个方法(getWalletName),在该方法中,我发送一个SQL查询以仅检索4个数据中的一个数据,但检索并显示了结果。我可以...

java mysql sql tostring
3个回答
0
投票

如果您不想更改构造函数,则只有办法:


0
投票

我为钱包类建议toString()的替代版本,也许更紧凑:


-1
投票

将其放在String Name = resultset.getString("Name");下,应该这样做

© www.soinside.com 2019 - 2024. All rights reserved.