java检查在MySQL中插入时数据库中是否存在给定的用户名
在Java中的MySQL中插入时,如何检查数据库中是否存在给定的用户名
MySQL workbench中有下表--
user_id int not null,autoincrement
movie _id int not null
movie_name varchar
user_name varchar
rating int
genre varchar
下面是对数据库的插入--
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:XXXX/Recommendation1", "root",
"XXXXXXXXXXX");
Statement st = con.createStatement();
int i = st
.executeUpdate("insert into Table1(movie_Id,movie_name,user_name,rating,genre) values('"
+ movieId
+ "','"
+ mname
+ "','"
+ pname
+ "','" + ratingr + "','" + genre + "')");
out.println("Data is successfully inserted!");
} catch (Exception e) {
System.out.print(e);
所以我只需要插入电影id、nmovie名称、用户名、分级类型,然后它进入数据库,并向其提供一个用户id(自动增量)
我想要的是,如果我在我的用户名选项中给出了相同的名称,它不应该提供唯一的自动递增id,而是插入现有用户名的所有细节
换句话说,如何检查数据库中是否存在给定的用户名
# 1 楼答案
您需要的是SQL,如果主键存在,则更新值;如果主键不存在,则插入值
在MySQL中,只有当insert不存在时,它才具有以下形式
要指定希望值来自values()部分,您需要将其设置为以下内容
使用表名和列名的完整示例
MySQL ON DUPLICATE KEY reference
注意,最好使用prepare语句来避免SQL注入