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))