如何将空值保存为" N / A"用Java bean类?每次它给我异常为null。如何保存空表格为" N / A"?我想将空值保存为" N / A"。
package javaonline;
import java.sql.*;
public class SavaData {
private String uname;
/**
* @return the uname
*/
public String getUname() {
return uname;
}
/**
* @param uname the uname to set
*/
public void setUname(String uname) {
this.uname = uname;
}
public int insertdate()
{
int i=0;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","root");
PreparedStatement st=con.prepareStatement("insert into nulltest values(?)");
if(!uname.isEmpty() || uname!=null)
{
st.setString(1,uname);
}
else{
st.setString(1,"N/A");
}
i=st.executeUpdate();
}
catch(Exception e)
{
e.getMessage();
System.out.print(e.getMessage());
}
return i;
}
}
答案 0 :(得分:3)
您需要将if
中的支票顺序切换为此
if(uname!=null && !uname.isEmpty())
因此,在这种情况下uname
为空,则uname.isEmpty()
将不会被调用,因为&&
是一个简短的运算符。
答案 1 :(得分:0)
您可以使用StringUtils.defaultIfBlank()
方法执行以下整个逻辑:
public int insertdate() {
int i=0;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
PreparedStatement st=con.prepareStatement("insert into nulltest values(?)");
st.setString(1, StringUtils.defaultIfBlank(uname, "N/A"));
i=st.executeUpdate();
} catch(Exception e) {
e.getMessage();
System.out.print(e.getMessage());
}
return i;
}
如有任何疑问,可以仔细检查此方法文档here。