2015-04-12 3 views
0

Я пытаюсь создать событие, используя код ниже в 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(); 

    } 

}

+0

показать нам свой код для 'MyJDBC.Insert (TableName, Fields, Values);' ' – dazito

ответ

0

В примере кода не является полным. Тем не менее, видно, что вы собираете некоторые переменные, такие как EventName и Location, а позже вы отправляете values методу insert, но эти значения никогда не заполняются.

Ваш обновленный вопрос доказывает, что: Строка в Java неизменна, вы не можете изменить ее после создания. Значения не будут оцениваться снова, после выполнения задания. В то время, когда вы назначили его, все переменные, используемые для заполнения, равны нулю.

Чтобы решить вашу проблему, назначьте значения прямо перед вызовом метода insert. Чтобы улучшить вашу программу, напишите класс DAO с помощью метода saveEvent(), который принимает параметр EventVO. EventVO содержит все собранные значения в качестве свойств. Метод сохранения создаст необходимый sql для вставки или обновления события.

Кроме того: язык java имеет соглашение, что имена переменных являются строчными буквами, вы должны придерживаться этого.

+0

Я отредактировал вопрос, и теперь он содержит какие значения. Я новичок в java, поэтому я не знаком с соглашениями. я буду помнить об этом и придерживаться конвенций. – Souraya

+0

Большое спасибо, это сработало! Я сделаю так :) – Souraya

Смежные вопросы