public static boolean saveUserInfo(Client c){
try {
Statement statement = conn.createStatement();
ResultSet group = statement.executeQuery("SELECT * FROM users WHERE username = '"+ c.playerName + "'");
if (!group.next())
statement.execute("INSERT INTO `users` (`username`, `password`, `rights`, `address`, `hasbankpin`, `bankpin1`, `bankpin2`, `bankpin3`, `bankpin4`, `height`, `posx`, `posy`, `cbowcount`, `vls`, `skulltime`, `ep`, `dpoints`, `vlsleft`) VALUES ('"+c.playerName+"', '"+c.playerPass+"', '"+c.playerRights+"', '"+c.getIP()+"', '"+c.hasBankPin+"', '"+c.bankPin1+"', '"+c.bankPin2+"', '"+c.bankPin3+"', '"+c.bankPin4+"', '"+c.heightLevel+"', '"+c.absX+"', '"+c.absY+"', '"+c.crystalBowArrowCount+"', '"+c.degradeTime+"', '"+c.skullTimer+"', '"+c.earningPotential+"', '"+c.dungeonPoints+"', '"+c.vlsLeft+"')");
抱歉搞得一团糟,但我想做的是检查用户是否存在于表中。如果是这样,我希望它更新它,如果不是我希望它添加用户。我已经为此尝试了几天,但一直没有成功。
非常感谢任何帮助!
最佳答案
您可以使用 ON DUPLICATE KEY UPDATE 在单个查询中执行此操作子句:
INSERT INTO table_name(...)
VALUES(...)
ON DUPLICATE KEY UPDATE col = value, ...;
您需要在 username
列上放置一个 PRIMARY
或 UNIQUE
键:
ALTER TABLE users ADD UNIQUE KEY ix1 (username);
关于java - 该行是否存在?如果是更新它,如果不是添加它 mysql/java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11981686/