2

I'm getting following error while trying to insert to DB.

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'password' at row 1

I'm getting it after executing this method:

    @Override
public void create(int id, int personal, String password, String firstName, String lastName, String role,
        String email, String startDate, int teamId) throws ParseException {
    SimpleDateFormat from = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat to = new SimpleDateFormat("yyyy-MM-dd");
    Date dateSQL = (Date) from.parse(startDate); // 01/02/2014
    String mysqlString = to.format(dateSQL); // 2014-02-01
    BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
    String hashedPassword = passwordEncoder.encode(password); // hashed
                                                                // password
    String SQL = "insert into Users (id_user, personal_number, password,first_name,last_name,role,email,start_date,Teams_id_team) values (?, ?, ?,?,?,?,?,?,?)";
    jdbcTemplateObject.update(SQL, id, personal, hashedPassword, firstName, lastName, role, email, mysqlString,
            teamId);
    return;
}

In DB I have column password which has type VARCHAR(80), hashedPassword is 60 character long. Could you tell me what is a problem here?

EDIT

Here is my table:

    CREATE TABLE IF NOT EXISTS `wirecard`.`users` (
    `id_user` INT NOT NULL AUTO_INCREMENT,
    `personal_number` INT NOT NULL,
    `password` LONGTEXT NOT NULL,
    `role` VARCHAR(45) NOT NULL,
    `first_name` VARCHAR(45) NOT NULL,
    `last_name` VARCHAR(45) NOT NULL,
    `email` VARCHAR(45) NOT NULL,
    `start_date` DATE NOT NULL,
    `Teams_id_team` INT NULL,
     PRIMARY KEY (`id_user`),
     UNIQUE INDEX `id_user_UNIQUE` (`id_user` ASC),
    UNIQUE INDEX `personal_number_UNIQUE` (`personal_number` ASC))
Lenusska1414
  • 171
  • 4
  • 15

0 Answers0