2016-05-08 5 views
0

Я пытаюсь добавить запись в базу данных. Я не могу найти ошибку в этой функции. любой может помочь?java msql вставить запись в таблицу

public static void insertTable(int idEmployee , String First_Name , String Last_Name , String Password , int Sex , String Mail , int Employee_idEmployee) throws Exception { 

     Connection conn = (Connection) getConnection() ; 
     try { 
      PreparedStatement insertStatement = (PreparedStatement) conn.prepareStatement("INSERT INTO employee (?,?,?,?,?,?,?) VALUES (?,?,?,?,?,?,?)"); 
      insertStatement.setInt(1, idEmployee); 
      insertStatement.setString(2, First_Name); 
      insertStatement.setString(3, Last_Name); 
      insertStatement.setString(4, Password); 
      insertStatement.setInt(5, Sex); 
      insertStatement.setString(6, Mail); 
      insertStatement.setInt(7 ,Employee_idEmployee); 

      insertStatement.close(); 
      conn.close() ; 

      System.out.println("it's ok"); 

     } catch (SQLException e) { 

      System.out.println(e.getMessage()); 

     }  
    } 

и Main

insertTable(4 , "test" , "test" , "test" , 1 , "test" , 4);   

это PRTSC стол:

enter image description here

+0

Вы должны указать имена столбцов вместо вопросительных знаков для первой группы вопросительных знаков –

+0

либо вам придется удалить '?' Из 'INSERT INTO employee (?,?,?,?,?,?,?)' здесь или вам нужно будет добавить имена столбцов вместо '?'. –

ответ

0

Задание имен столбцов является частью исправления.

Вы по-прежнему отсутствует выполнение построчно

у вас нет insertStatement.execute(); позвонить

+0

Спасибо большое! программа все еще не работает, но теперь у меня есть ошибка, поэтому лучше –

+0

это потому, что ваша колонка в сексе указана как BOOL? –

+0

этот столбец okej, моя проблема была с внешним ключом, но теперь evrything is okej! Еще раз спасибо! вы были очень полезны –

0

Ах, я думаю, что я нашел то, что ваша ошибка.

Вместо следующего:

"INSERT INTO employee (?,?,?,?,?,?,?) VALUES (?,?,?,?,?,?,?)" 

Попробуйте

"INSERT INTO employee (Your DB Variables)VALUES (?,?,?,?,?,?,?)" 

Примером этого "DB" Я использую две переменные (имя, ID) Имя Строка Int ID

PreparedStatement insertStatement = (PreparedStatement) conn.prepareStatement("INSERT INTO DB (Name,ID) VALUES (?,?)"); 
insertStatement.setString(1,Name); 
insertStatement.setInt(2,ID); 
insertStatement.execute(); 
System.out.println("Success!"); 

Где он говорит вам r DB, помещается в имена переменных/столбцов. Знак вопроса предназначен только для использования переменных.

Предполагается, что вы используете ucanaccess?

Дайте мне знать!

Надеюсь, что это поможет

0

Единственная вещь, которую я могу думать о вас типы данных. У меня были те же проблемы с моей MS Access DB. Проверьте типы данных.