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