我拼了半天都不对!郁闷的
就是一条select语句,
select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info where sendtype=0 order by filetype asc,paixu ascwhere后面还要加几个条件,要求是条件属性有值存在就加上,为空就不管,我拼得很郁闷,求教高手
就是一条select语句,
select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info where sendtype=0 order by filetype asc,paixu ascwhere后面还要加几个条件,要求是条件属性有值存在就加上,为空就不管,我拼得很郁闷,求教高手
解决方案 »
- 我下面下面有有个问题,我点击一submit事件,发现响应两次事件,为什么?具体看下面代码?
- 关于JSF画面显示h:message的问题。
- JSP+dTree的问题
- 大学毕业生如何成功应聘高薪IT职位
- “返回类型与 JspSourceDependent.getDependants()不兼容”怎么回事
- 如何判断一个byte是否是中文字符的一半
- 用Form表单上传一个文件,和常见的需求很不同
- 一个初学者对Servlet/JavaBean 的理想问题.谢谢回答
- Table可以提交给服务器吗?
- 有关限制同时访问的问题
- 菜鸟问题.session
- 我用JSP做了个购物车的代码,在有个页面出了问题 希望各位帮我看看额
一个简单的办法, where 写成 where 1 = 1
那么不管后面还有条件没, 都不用考虑是否拼 where 关键字了
那我的条件都去哪了?
ls_sql1 = "select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info where sendtype=0 "; ls_sql5 = " order by filetype asc,paixu asc";
if(filetype!=null)
ls_sql2 = "and filetype="+filetype+" ";
else
ls_sql2 =" ";
if(xm!=null)
ls_sql3 = "and title="+xm+" ";
else
ls_sql3="";
if(sxzy!=null)
ls_sql4 = "and memo="+sxzy+" ";
else
ls_sql4=" ";
String ls_sql=ls_sql1+ls_sql2+ls_sql3+ls_sql4;QueryDAO.executeQuery(String ): 关键字 'and' 附近有语法错误。;sql语句select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info where sendtype=0 and filetype=04 and title= and memo=
java.sql.SQLException: 关键字 'and' 附近有语法错误。
加条件的话就在where sendtype=0 and 条件2 and ……。
我不知道楼主是不是这个意思
然后where (''=? or 条件1=? ) and (''=? or 条件2=?) and (''=? or 条件3=?)
比如:
StringBuffer ls_sql1 = new StringBuffer();ls_sqll.append("select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info where sendtype=0 ");
if(filetype!=null && !filetyp.equals(""))
ls_sqll.append( "and filetype="+filetype+" ");
就不用后边那样连接字符串了
if(username != null && !"".equals(username)){
sql = sql + " and username = " + username;// 推荐使用?预编译,不要直接拼
}2>
StringBuilder sql = new StringBuilder("select fileType,title,standardCode,memo,awardOrgan,infoId from H_Site_info ");
List args = new ArrayList();
if(username != null && !"".equals(username)){
if(args.size() > 0){
sql.append(" and username = ?");
} else {
sql.append(" where username = ?");
}
args.add(username);
}
// 然后遍历args,给参数赋值推荐使用第二种
如果是,那很简单,只要在当前sql语句下加一个where 1=1,这样就可以了,例如
sql = select * from table_name where 1=1
if(!userName.equals("")){
sql += " and userName='"+userName+"'";
}
不知道你是不是这个意思