本人菜鸟,学web不到二十天,现在做一个项目
前台网页六种条件随意组合查询,所以在传入sql语句的时候我是这样写的 String sql0 = "select * from Daily where writer='" + dailywriter + "'";
String sql1 = (start_time == null||start_time=="") ? "":" and datetime>='" + start_time+ "'" ;
String sql2 = (end_time.equals("")==true) ? (" and datetime<='" + end_time + "'"): "";
String sql3 = ((proname != null)==true) ? (" and pro_ID='" + proname + "'" ): "";
String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";
String sql5 = statement != null? (" and statement='" + statement + "'"): "";
String sql6 = task != "" ? (" and task='" + task + "'" ): "";
String sql = sql0 + sql1 + sql2 + sql3 + sql4 + sql5 + sql6;
如上,writer是登录人的名字,成功的在session里取值没问题,可是下面的sql1到sql6 从前台表单页面取值,不为空,都可以取出,为空的时候,赋值的时候却没有赋予""空制符串
本来 sql语句都是写成String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";这种形式的,但是因为不成功,就针对上面每个都换成不同的表达式形式,
可是还是不能付空字符串,下面是控制台检验的答应语句:
and datetime>=''
and datetime<=''
and pro_ID=''
and PRP_ab=''
and statement=''
and task=''
select * from Daily where writer='a1' and datetime>='' and datetime<='' and pro_ID='' and PRP_ab='' and statement='' and task=''
前台网页六种条件随意组合查询,所以在传入sql语句的时候我是这样写的 String sql0 = "select * from Daily where writer='" + dailywriter + "'";
String sql1 = (start_time == null||start_time=="") ? "":" and datetime>='" + start_time+ "'" ;
String sql2 = (end_time.equals("")==true) ? (" and datetime<='" + end_time + "'"): "";
String sql3 = ((proname != null)==true) ? (" and pro_ID='" + proname + "'" ): "";
String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";
String sql5 = statement != null? (" and statement='" + statement + "'"): "";
String sql6 = task != "" ? (" and task='" + task + "'" ): "";
String sql = sql0 + sql1 + sql2 + sql3 + sql4 + sql5 + sql6;
如上,writer是登录人的名字,成功的在session里取值没问题,可是下面的sql1到sql6 从前台表单页面取值,不为空,都可以取出,为空的时候,赋值的时候却没有赋予""空制符串
本来 sql语句都是写成String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";这种形式的,但是因为不成功,就针对上面每个都换成不同的表达式形式,
可是还是不能付空字符串,下面是控制台检验的答应语句:
and datetime>=''
and datetime<=''
and pro_ID=''
and PRP_ab=''
and statement=''
and task=''
select * from Daily where writer='a1' and datetime>='' and datetime<='' and pro_ID='' and PRP_ab='' and statement='' and task=''
解决方案 »
- 搞jsp开发,如果项目中需要.xml文件,那么应该把它放在哪个目录下?
- 模糊搜索,返回结果字把搜索关键字替换成红色(如百度的搜索)。 如何实现?
- 遍历Alist,将Alist中的对象中的Blist放入select中的list 怎么写
- hql的查询感觉用起来不方便,提一个问题,大伙是如何做的
- 多个线程或EJB问题(今天上课对老师说的结果有些怀疑)。。。
- 求助: 使用java编写一个文件传输服务器端的程序
- spring中使用DriverManager.getConnection()方法进行数据库操作的问题
- jbx处理上万行代码的java文件时特慢.如何解决?
- 用java如何调用Plsql的procedure!
- Eclipse上使用Hibernate5.0及以上版本编写第一个HelloWorld程序
- 求详解 ,
- cxf webservice客户端调用时报以下错误
public class Test {
public static void main(String[] args) {
String dailywriter="a";
String start_time="b";
String end_time="c";
String proname="d";
String statement="";
String task="f";
String prpname=null;
String sql0 = "select * from Daily where writer='" + dailywriter + "'";
String sql1 = (start_time == null || start_time == "") ? ""
: " and datetime>='" + start_time + "'";
String sql2 = (end_time.equals("") == true) ? (" and datetime<='"
+ end_time + "'") : "";
String sql3 = ((proname != null) == true) ? (" and pro_ID='" + proname + "'")
: "";
String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'")
: "";
String sql5 = statement != null ? (" and statement='" + statement + "'")
: "";
String sql6 = task != "" ? (" and task='" + task + "'") : "";
String sql = sql0 + sql1 + sql2 + sql3 + sql4 + sql5 + sql6;
System.out.println(sql);
}}
select * from Daily where writer='a' and datetime>='b' and pro_ID='d' and statement='' and task='f'
<form action="QueryDailyAction" method="post">
start_time <input type="text" name="start_time"/><br/>
end_time <input type="text" name="end_time"/><br/>
task <input type="text" name="task"/><br/>
proname <input type="text" name="proname"/><br/>
prpname <input type="text" name="prpname"/><br/>
statement <input type="text" name="statement"/><br/>
<input type="submit" value="查询"/><br/>
</form>
这是前台有关的表单页面
现在我怀疑的就是 当前台输入为空的时候,传到action的值不能用!=null判断吗?
可是我上面试了各种不同的方式,括号也加上或去掉,最后的sql语句还是如此