我的目标是生成随机数并将其插入数据库。我不想重复。我已经完成了研究,其中之一是先检查数据库,然后再插入。
//GENEREATE RANDOM NUMBER
long number = (long) Math.floor(Math.random() * 900000L) + 900000L;
//CHECK IF NUMBER IS ALREADY EXIST IN DATABASE
String searchQuery = "select appleId from food where appleId='" + number + "'";
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(searchQuery);
boolean appleIdExists = rs.next();
//IT IS UNIQUE
if (!appleIdExists) {
try {
//INSERT STATEMENT
.......
} catch (SQLException e) {
e.printStackTrace();
}
}
//IT IS NOT UNIQUE..
else
{
.....
}
}catch (Exception ex) {
System.out
.println("Log In failed: An Exception has occurred! "
+ ex);
}
所以我的问题是,如果它不是唯一的,我需要生成另一个数字并再次检查吗?并一次又一次地检查,直到它是唯一的?结果是否为if-else语句?
我不确定使用if-else语句是否有效。还是有另一种方式?
有什么建议吗?
帮助将不胜感激!:)
为什么不使用数据库中的自动递增标识列,从而使数据库为您创建唯一的ID?每个现代的DBMS都支持此功能。
对于MySQL:
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
)
对于PostgreSQL:
CREATE TABLE animals
(
id serial primary key,
name VARCHAR(40) not null
);
所有数据库都具有此功能,并且当您使用JDBC插入行时,会在响应中找回插入行的键。一个简化的例子:
String query = "INSERT INTO animals (name) VALUES ('zebra')";
Integer insertedId = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句