如何将空值保存为" N / A"用Java bean类?

时间:2018-04-23 20:31:09

标签: java jdbc

如何将空值保存为" 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;
    }

    }

2 个答案:

答案 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