Java 在数据库中保存空值

Java 在数据库中保存空值,java,mysql,Java,Mysql,我正在尝试使用下面的java代码创建一个事件。然而,在我给它所需的输入之后,我检查数据库以找到所有包含空值的字段。我该怎么办?先谢谢你 public void CreateEvent(User U){ try{ BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); String d; //getting inputfrom the

我正在尝试使用下面的java代码创建一个事件。然而,在我给它所需的输入之后,我检查数据库以找到所有包含空值的字段。我该怎么办?先谢谢你

public void CreateEvent(User U){

    try{
        BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
        String d;
        //getting inputfrom the user
        System.out.print("Event Name \n");
        d = inFromUser.readLine();
        EventName = d;

        System.out.println("Kindly Provide the start date(Format dd/MM/yyyy HH:mm)");
        //parsing date from user using SimpleDateFormat
        date = sdf.parse(inFromUser.readLine());
        startDate = date.toString();


        System.out.println("Kindly Provide the end date(Format dd/MM/yyyy HH:mm)");
        date = sdf.parse(inFromUser.readLine());
        d = date.toString();
        endDate = d;


        System.out.println("Where is the event:");
        d = inFromUser.readLine();
        Location= d ;

        System.out.println("Description");
        d = inFromUser.readLine();
        Description= d;

        //Get creator UserName
        Creator = U.FullName;

        MyJDBC.Insert(TableName, Fields, Values);


    }
    catch (IOException ex) {//catch the exception

        ex.printStackTrace();
    }
    catch (ParseException e) {

        e.printStackTrace();
    }

}
这是什么

String Values= "'"+EventName+"','"+Location +"','"+Description+"','"+startDate+"','"+endDate+"','"+Creator+"'";
这是JDBC插入方法

public void Insert(String TableName,String Fields, String Values){

   try {

       conn = DriverManager.getConnection(DB_URL, USER, PASS);
       stmt = conn.createStatement();

       String sql = "INSERT INTO " + TableName+ " (" +Fields+ ") VALUES ("+ Values+ ")" ;
       stmt.execute(sql); 
       System.out.println("Successfully inserted record into database");
       stmt.close();
   }
   catch(SQLException se){
           se.printStackTrace();

   }

}代码示例不完整。然而,可以看到的是,您收集了一些变量,如
EventName
Location
,然后将
发送到insert方法,但这些值从未填充

您更新的问题证明:Java中的字符串是不可变的,您不能在创建后更改它。赋值完成后,将不再计算值。 在分配它时,用于填充它的所有变量都为空

要立即解决问题,请在调用insert方法之前分配值。 要改进您的程序,请使用将
EventVO
作为参数的方法
saveEvent()
编写一个类DAO。
EventVO
包含所有收集的值作为属性。 save方法将创建插入或更新事件所必需的sql


另外:java语言有一个惯例,变量名是小写的,你应该坚持这个原则。

给我们展示你的
MyJDBC.Insert(TableName,Fields,Values)代码
`我编辑了这个问题,现在它有了包含的值。我是java新手,所以不熟悉这些约定。我会记住这一点,并遵守惯例。