Java 在MySQL中插入时,检查数据库中是否存在给定的用户名
如何在Java中插入MySQL时检查数据库中是否存在给定的用户名 我在MySQL工作台中有下表-- 下面是对数据库的插入-- 所以这里我只插入电影id、nmovie名称、用户名、分级类型,然后它进入数据库,并向它提供一个用户id(自动增量) 我想要的是,如果我在我的用户名选项中使用相同的名称,那么它不应该提供唯一的自动递增id,而是插入现有用户名的所有详细信息Java 在MySQL中插入时,检查数据库中是否存在给定的用户名,java,mysql,sql,database,Java,Mysql,Sql,Database,如何在Java中插入MySQL时检查数据库中是否存在给定的用户名 我在MySQL工作台中有下表-- 下面是对数据库的插入-- 所以这里我只插入电影id、nmovie名称、用户名、分级类型,然后它进入数据库,并向它提供一个用户id(自动增量) 我想要的是,如果我在我的用户名选项中使用相同的名称,那么它不应该提供唯一的自动递增id,而是插入现有用户名的所有详细信息 换句话说,如何检查数据库中是否存在给定的用户名?您要查找的是SQL,如果主键存在,则更新值;如果主键不存在,则插入值 在MySQL中,只
换句话说,如何检查数据库中是否存在给定的用户名?您要查找的是SQL,如果主键存在,则更新值;如果主键不存在,则插入值 在MySQL中,只有当insert不存在时,它才具有以下形式
INSERT INTO Table11(...) VALUES(...) ON DUPLICATE KEY UPDATE col11=value1, col2=value2,...
要指定希望值来自values()部分,您需要将其设置为以下内容
INSERT INTO Table11(...) VALUES(...) ON DUPLICATE KEY UPDATE col1=VALUES(col1), col2=VALUES(col2),...
使用表名和列名的完整示例
"insert into Table1(movie_Id,movie_name,user_name,rating,genre) values('"
+ movieId+ "','"+ mname+ "','"+ pname
+ "','" + ratingr + "','" + genre + "') "
+ "ON DUPLICATE KEY UPDATE "
+ "movie_name=VALUES(movie_name), user_name=VALUES(user_name), "
+ "rating=VALUES(rating), genre=VALUES(genre) "
注意,最好使用prepare语句来避免SQL注入
String stmt = "insert into Table1(movie_Id,movie_name,user_name,rating,genre) values(?,?,?,?,?) "
+ "ON DUPLICATE KEY UPDATE "
+ "movie_name=VALUES(movie_name), user_name=VALUES(user_name), "
+ "rating=VALUES(rating), genre=VALUES(genre) "
PreparedStatement ps = connection.prepareStatement(stmt);
ps.setObject(1, movie_id);
ps.setObject(2, movie_name);
ps.setObject(3, user_name);
ps.setObject(4, rating);
ps.setObject(5, genre);
ResultSet rs = ps.executeQuery();
谢谢你,where之后我应该写些什么?这是对用户的限制吗?如果你已经有了主键,那么你就不需要where子句了。我只是把它作为习惯,我会去掉它们来匹配你的问题Hey Greey谢谢…….但它给我带来了错误…….我已经完成了以下int I=st.executeUpdate(“在表1中插入重复键更新movie_Id=movieId,movie_name=mname,user_name=pname,rating=ratingr,genre=genre”);抱歉,我只是即兴打字,语法应该是正确的现在语法肯定是正确的,我会把你应该放在答案里的东西放进去
"insert into Table1(movie_Id,movie_name,user_name,rating,genre) values('"
+ movieId+ "','"+ mname+ "','"+ pname
+ "','" + ratingr + "','" + genre + "') "
+ "ON DUPLICATE KEY UPDATE "
+ "movie_name=VALUES(movie_name), user_name=VALUES(user_name), "
+ "rating=VALUES(rating), genre=VALUES(genre) "
String stmt = "insert into Table1(movie_Id,movie_name,user_name,rating,genre) values(?,?,?,?,?) "
+ "ON DUPLICATE KEY UPDATE "
+ "movie_name=VALUES(movie_name), user_name=VALUES(user_name), "
+ "rating=VALUES(rating), genre=VALUES(genre) "
PreparedStatement ps = connection.prepareStatement(stmt);
ps.setObject(1, movie_id);
ps.setObject(2, movie_name);
ps.setObject(3, user_name);
ps.setObject(4, rating);
ps.setObject(5, genre);
ResultSet rs = ps.executeQuery();