簡體   English   中英

如何擺脫 SQL 結果中的 null 值導致 java?

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

我真的很難解決這個問題,如果可以的話,請幫助我。

這個方法的作用是,它通過執行 SQL 查詢來檢索我在數據庫中擁有的標簽,將結果存儲在 ArrayList 中,然后返回它。

我的數據庫包含 3 個屬性:名稱、標簽、位置。 我只想檢索標簽並單獨顯示它們而不顯示其他屬性,所以它就像這種格式,例如 [tag1,tag2,tag3]

而且由於我的 toString 方法中的格式是這樣的,我不能將其更改為僅打印標簽,因為我有另一種方法可以將所有這些屬性一起顯示。

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

    return p;
}

I get null values for the other attributes when I chose to select only to output the tags and I get the result as follows: [null,null,rfid1, null,null,rfid2, null,null,rfid3]

那么如何擺脫這些 null 值而只顯示標簽位?

我獲取標簽值的方法:

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;

}

我的 controller 代碼:

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

我相信這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM