数据库字段名为key时,运行异常

发布于 2021-11-26 13:52:41 字数 491 浏览 437 评论 8

@JFinal 你好,想跟你请教个问题:

我有一张关键词表,有个字段叫key,使用查找方法:

Keyword keyword = Keyword.dao.findFirst("select * from keyword where key = ?", new Object[] { contents[0] });

运行到这一行,异常,但是不会报异常,但也不会继续执行下去,特别的奇怪

将字段名改为keyname后,运行就无错了

Keyword keyword = Keyword.dao.findFirst("select * from keyword where keyname = ? ", new Object[]{ contents[0] });

另外数据库是mysql

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

画骨成沙 2021-12-02 07:59:06

多谢

一个人的旅程 2021-12-02 07:10:47

记得可以用重音符号包一下 `key`=xxx

长安忆 2021-12-02 04:42:57

保留字段 可以用tables.key

笑红尘 2021-12-02 03:22:54

3Q,如果要注入多个参数,还是要new 的吧

泛泛之交 2021-11-30 16:10:23

回复
再多的参数也不需要new,直接用逗号分隔即可,just do it

噩梦成真你也成魔 2021-11-30 04:11:58

回复
百度了一下,才知道这是动态参数,又学到了,谢谢

回眸一笑 2021-11-28 16:39:59

回复
2016用jfinal开发,就这么定了

归途 2021-11-28 01:39:23

    "key" 是 mysql 的保留字,所以在 sql 中使用的时候需要使用 "`" 字符来包裹一下,注意这个字符在数字 1 键左边的键上面,另外,查询语句建议写成这样:

Keyword.dao.findFirst("select * from keyword where `key` = ? limit 1", contents[0]);

   也即不要使用 new Object 来传参,sql中最好添加一个 limit 1提升性能,这个在方法注释上有提示

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文