java中写一个模糊查询

qq_39004689 2017-08-01 04:05:22
取不出来值 哪里写错了 新手求指导
...全文
843 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
waei87 2019-04-22
  • 打赏
  • 举报
回复
String里面的“‘%” 的单引号要去掉只能“%”+key+"%"
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 15 楼 u012934325 的回复:
引用 13 楼 qq_39004689 的回复:
[quote=引用 11 楼 u012934325 的回复:] [quote=引用 10 楼 qq_39004689 的回复:]
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
代码在下面 大佬 这次要在哪里打印?[/quote] rs那里打断点开始单步执行 看看哪个地方的sSQL拼接了你的参数 然后执行那个SQL[/quote] 要不 我加你QQ 你帮我远程看一下 谢谢了
110成成 2017-08-01
  • 打赏
  • 举报
回复
引用 14 楼 qq_39004689 的回复:
引用 11 楼 u012934325 的回复:
[quote=引用 10 楼 qq_39004689 的回复:]
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
12L[/quote] 我觉得你首先要传两个变量,预编译的话,完整sql语句打印不出来 只能看日志。
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 15 楼 u012934325 的回复:
引用 13 楼 qq_39004689 的回复:
[quote=引用 11 楼 u012934325 的回复:]
[quote=引用 10 楼 qq_39004689 的回复:]
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的

代码在下面 大佬 这次要在哪里打印?[/quote]
rs那里打断点开始单步执行 看看哪个地方的sSQL拼接了你的参数 然后执行那个SQL[/quote]

然后 按F5?
墨笙弘一 2017-08-01
  • 打赏
  • 举报
回复
引用 13 楼 qq_39004689 的回复:
引用 11 楼 u012934325 的回复:
[quote=引用 10 楼 qq_39004689 的回复:]
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
代码在下面 大佬 这次要在哪里打印?[/quote] rs那里打断点开始单步执行 看看哪个地方的sSQL拼接了你的参数 然后执行那个SQL
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 11 楼 u012934325 的回复:
引用 10 楼 qq_39004689 的回复:
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
12L
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 11 楼 u012934325 的回复:
引用 10 楼 qq_39004689 的回复:
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
代码在下面 大佬 这次要在哪里打印?
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 9 楼 zc881124 的回复:
你的sql存在两个变量,貌似你list中只有一个变量值 另把在你的jdbcUtil.getObjectListEntiry 方法中把最终拼接的sql语句打印下。
没有最终拼接 - -! public static <T> List<T> getObjectListEntity(String sql, ArrayList<Object> paras,PageEntity pageEntity, Class<T> cls) { List<T> list = new ArrayList<T>(); T t=null; int index = 1; // 获取连接 getConnection(); try { // 创建prepareStatement sql=sql+" limit "+ (pageEntity.getPageIndex()-1)*pageEntity.getPageSize() +","+pageEntity.getPageSize(); pst = conn.prepareStatement(sql); // 添加参数 if (paras!= null && paras.size() > 0) { pst.clearParameters(); for (int i = 0; i < paras.size(); i++) { pst.setObject(index++, paras.get(i)); } } // 执行 rs = pst.executeQuery(); // 获取元数据 ResultSetMetaData rsmd = rs.getMetaData(); // 对象元数据中的列数 int count = rsmd.getColumnCount(); while (rs.next()) { t = cls.newInstance(); for (int i = 0; i < count; i++) { String columnName = rsmd.getColumnName(i + 1); Object columnValue = rs.getObject(columnName); if (columnValue == null) { columnValue = ""; } // 反射 Field m = cls.getDeclaredField(columnName); m.setAccessible(true); m.set(t, columnValue); } list.add(t); } } catch (Exception e) { e.printStackTrace(); } return list; }
墨笙弘一 2017-08-01
  • 打赏
  • 举报
回复
引用 10 楼 qq_39004689 的回复:
你在你getObjectList那个里打印一下SQL,看看你的where条件是怎么拼接上去的
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
110成成 2017-08-01
  • 打赏
  • 举报
回复
你的sql存在两个变量,貌似你list中只有一个变量值 另把在你的jdbcUtil.getObjectListEntiry 方法中把最终拼接的sql语句打印下。
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
墨笙弘一 2017-08-01
  • 打赏
  • 举报
回复
引用 6 楼 qq_39004689 的回复:
[quote=引用 5 楼 u012934325 的回复:] [quote=引用 4 楼 qq_39004689 的回复:] 查出来没有问题 是不是拼接 出问题了?
你要运行控制台打印的SQL。。。。。。。。。。。[/quote] System.out.println(sql);?[/quote]你在return地方打个断点,执行到那里以后,看一下你SQL的值是什么 贴出来
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
引用 5 楼 u012934325 的回复:
[quote=引用 4 楼 qq_39004689 的回复:] 查出来没有问题 是不是拼接 出问题了?
你要运行控制台打印的SQL。。。。。。。。。。。[/quote] System.out.println(sql);?
墨笙弘一 2017-08-01
  • 打赏
  • 举报
回复
引用 4 楼 qq_39004689 的回复:
查出来没有问题 是不是拼接 出问题了?
你要运行控制台打印的SQL。。。。。。。。。。。
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
查出来没有问题 是不是拼接 出问题了?
墨笙弘一 2017-08-01
  • 打赏
  • 举报
回复
你把你查询sql打印出来在数据库运行一下 我估计是你的查询SQL有问题哦
鱿鱼ing 2017-08-01
  • 打赏
  • 举报
回复
谁知道你怎么封装的查询方法,可以试着把最终的sql语句打印出来,一眼就能看出问题。 另,两个like 需要参数,你只传一个
qq_39004689 2017-08-01
  • 打赏
  • 举报
回复
无语应答- -!

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧