0

我正在使用 MySQL Workbench,并将我的一列分配为唯一键。当我检查 MySQL 表时,它仍然输入重复的“users_name”我还是 MySQL/Java 的新手,所以我确定我只是犯了一个愚蠢的错误。

System.out.print("Name: ");
String name = sc.nextLine();
System.out.print("Password: ");
String pass = sc.nextLine();

String SQL = String.format("INSERT INTO users (users_name, users_password) values('" + name + "','" + pass + "')");
PreparedStatement stmt = (PreparedStatement) connection.prepareStatement(SQL);
stmt.executeUpdate(SQL);

MySQL 表定义:

CREATE  TABLE IF NOT EXISTS `mydb`.`users` (
`users_id` INT NOT NULL AUTO_INCREMENT ,
`users_name` VARCHAR(45) NULL ,
`users_password` VARCHAR(45) NULL ,
PRIMARY KEY (`users_id`) ,
UNIQUE INDEX `users_id_UNIQUE` (`users_id` ASC) ,
UNIQUE INDEX `users_name_UNIQUE` (`users_name` ASC) )
ENGINE = InnoDB
4

1 回答 1

2

不是真正的答案,而是非常有用的建议:

这是你应该如何使用你的PreparedStatement

String sql = "INSERT INTO users (users_name, users_password) values (?, ?);";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, pass);
stmt.executeUpdate();

要回答您的实际问题,我们需要查看表定义。

于 2013-03-03T02:01:41.447 回答