求助,Jfinal 使用Db方式取不到值


List<Record> rcd = Db.use("jdbc").find("select * from tkjcg limit 10");

List<Record> rcd = Db.use("jdbc").find("select * from tkjcg where item_3 like ? limit 10",item);

因为是用的MySQL视图,没有主键,所以直接用的db方式访问,现在第一句直接查询可以获取到结果,第二句总是取不回数据,即使不用问号把参数(英文参数)写死也获取不到,item已经拼装了%,另外一个项目成功使用过like,语句99%应该是没问题的,直接Navicat查数据库可以获取到结果。

评论区

JFinal

2018-05-15 18:12

jfinal 仅仅只是将你的 sql 与参数直接扔给了 JDBC 去查询数据库,只要 JDBC 支持你现在这个 sql + 参数,那 jfinal 就一定支持

建议你单步调试一下看是什么原因,或者直接用 JDBC 连数据库,手动操作一下,看有没有结果,操作方式大至如下:
Connection conn = DbKit.getConfig("jdbc").getConnection();
PreparedStatement pst = conn.prepareStatement(sql);
pst.setObject(1, item);
ResultSet rs = pst.executeQuery();
然后迭代从 rs 中读取结果

JFinal

2018-05-15 18:14

估计是某个未知的小细节没做到位,所以查不到数据,例如权限不对,例如没有数据,再例如 jdbcUrl 配置错误连到了别的数据库等等,总之要单步调试来解决问题

热门反馈

扫码入社