2013-08-19 3 views
0

Нужна помощь! Я задал вопрос здесь ранее - MySQL/Java error, связанный с этим, но не идентичный (не уверен в протоколах в SO для таких вопросов). Я работаю с JDBC, MySQL и сталкивается с ошибками. Во-первых, кодJdbcTemplate, ошибка MySQL

public User find(String login) { 
    System.out.println("Trying to find the user...." + login);  
    User user = this.jdbcTemplate.queryForObject(
     "select * from xyz where user_name = ?", 
     new Object[]{login}, 
     new RowMapper<User>() { 
      public User mapRow(ResultSet rs, int rowNum) throws SQLException { 
       User user = new User(); 
       user.setId(Long.valueOf(rs.getInt(1))); 
       user.setUserName(rs.getString(2)); 
       user.setPassword(rs.getString(3)); 
       return user; 
      } 
     }); 
    System.out.println("Found user..." + user); 
    return user; 
} 

public void create(User user) { 

    this.jdbcTemplate.update("INSERT INTO xyz (user_name,user_password) VALUES (default, default, ?, ?)", 
      new Object[] {user.getUserName(),user.getPassword()}); 

мне нужно дать значения по умолчанию, USER_NAME user_password (2 столбцами), но не знаю, как и где в «создании (пользователя) пользователя блока.

Вот ошибка в коде выше: (?,).

SEVERE: Servlet.service() for servlet appServlet threw exception 
java.sql.SQLException: Column count doesn't match value count at row 1 

Я пробовал без «по умолчанию», «по умолчанию» и просто, но это дает мне еще одну ошибку

SEVERE: Servlet.service() for servlet appServlet threw exception 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your 

SQL syntax; check the manual that corresponds to your MySQL server version for the 

right syntax to use near '?,?)' at line 1 

ответ

0

В списке столбцов имеется только 2 столбца, и вы пытаетесь вставить 4 значения.

INSERT INTO xyz (user_name,user_password) VALUES (default, default, ?, ?) 

Отбросьте default значения, если столбец имеет значение по умолчанию и не указано в списке столбцов.

+0

Thx :) Я только что отредактировал вопрос, чтобы указать на ошибки, когда я пробую его без «по умолчанию» и просто (?,?). – user2480526

+0

Таблица MySQL не имеет значений по умолчанию для этих столбцов. – user2480526

+0

@ user2480526 Вы изменили свой вопрос в этот момент. Являются ли ваши имена столбцов «user_name» и «user_password»? Убедитесь, что ваши столбцы правильно экранированы, если вы используете [зарезервированное слово] (http://dev.mysql.com/doc/refman/5.5/ru/reserved-words.html) – Kermit

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