Java 在数据库中保存空值
我正在尝试使用下面的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
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新手,所以不熟悉这些约定。我会记住这一点,并遵守惯例。