请帮忙指点下SQL语句拼接

dai_jiawei 2013-07-23 07:38:51
我最近在做一个搜索功能的,想用sql拼接的。如下代码,但无法实现,求指点。
StringBuffer sql = new StringBuffer();
List values=new ArrayList();
sql.append("select * from news where 1=1");
if(newsTitle!=null||!"".equals(newsTitle)){
sql.append(" and nsTitle like ?");
values.add(newsTitle);
}
if(newsKeyword!=null||!"".equals(newsKeyword)){
sql.append(" and nsKeyword like ?");
values.add(newsKeyword);
}
if(newsContent!=null||!"".equals(newsContent)){
sql.append(" and nsCont like ?");
values.add(newsContent);
}
pstmt=conn.prepareStatement(sql.toString());
for(int i=0;i<values.size();i++)
pstmt.setObject(i+1, values.get(i));
rs = pstmt.executeQuery();
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a12939026 2013-07-24
  • 打赏
  • 举报
回复
你的like ' % 都没加呢 还有 写SQL最好不要强行拼接,会造成数据库硬解析,导致效率下降~
lt3 2013-07-23
  • 打赏
  • 举报
回复
看看你的sql语句, 或者将它拿到数据库中去执行下。 可以方便查看你的错误
lt3 2013-07-23
  • 打赏
  • 举报
回复
不知道你说的这sql是否有什么问题? 单纯这样子的话应该是没有错误的, 但是没有意义! 你要明白like的用法, 你的sql也就不会有什么问题了。 你还可以使用log4j将sql打印出来。
小曦阳哟 2013-07-23
  • 打赏
  • 举报
回复
if(newsTitle!=null||!"".equals(newsTitle)){ sql.append(" and nsTitle like ?"); values.add(newsTitle); } 把类似代码改成下面的: f(newsTitle!=null||!"".equals(newsTitle)){ sql.append(" and nsTitle like ?"); values.add("%"+newsTitle+"%"); } 给values集合添加值时,要加上 % 号的.
  • 打赏
  • 举报
回复
like一般是跟通配符搭配使用的,你那like?是应该过不去的。
allicetion 2013-07-23
  • 打赏
  • 举报
回复
if(newsTitle!=null||!"".equals(newsTitle)){ sql.append(" and nsTitle like '%"+你查询的字段+“%‘”); values.add(" '%"+你查询的字段+“%‘”); } 试下
dsl369 2013-07-23
  • 打赏
  • 举报
回复
怎么无法实现??是不是那like那里不能这样写?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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