我想使用activejdbc更新多条记录
Person.update("name = ?, last_name = ?", "name in ?", "Steve", "Johnson", "jagadeesh,varma,jampana,vikash");
没有错误,但db中没有更新任何内容。
发布于 2019-06-06 04:45:33
这个问题与in
子句有关。您正在按照in子句的要求传递"jagadeesh,varma,jampana,vikash“not "('jagadeesh','varma','jampana','vikash')”
这个解决方案应该可以解决您的问题:
Person.update("name = ?, last_name = ?", "name in ('jagadeesh','varma','jampana','vikash')", "Steve", "Johnson");
发布于 2019-06-06 05:23:41
这不是ActiveJDBC框架的问题,而是JDBC标准不支持的东西。有关更多信息,请参阅此页面:http://javalite.io/in_clause
您将需要连接字符串:
List names = Util.list("jagadeesh","varma","jampana","vikash");
List<Person> people = Person.update(name = ?, last_name = ?", "name IN ('" + Util.join(names, "', '") + "')", "John", "Doe");
不幸的是,这可能会打开SQL注入攻击的可能性,如果你正在构建一个web应用程序-所以要小心。
https://stackoverflow.com/questions/56467359
复制相似问题