当前位置:编程学习 > JAVA >>

各位大虾帮帮忙呗、

 做一个查询。对于一个页面、有文本框、下拉框、获取文本的值作为查询条件。 输入其中的一个条件也能查询。sql应怎样写 --------------------编程问答-------------------- 如果是自己直接用JDBC,那么就根据已有条件情况来拼装SQL;

而Hibernate和MyBatis这类组件都支持条件组装的查询,Google下就有样例了。 --------------------编程问答-------------------- 各位友们。帮忙解决一下呗、小弟正处于初学阶段呢。 --------------------编程问答-------------------- eg:select * from table where 下拉框 = '下拉框value' and 文本框 like '%'+ 文本框value +'%' --------------------编程问答-------------------- 是不是、没有输入的值 那个条件就为空 。  应怎样拼装啊 --------------------编程问答-------------------- String sql = "Select ..... Where 1=1 ";
if (name != null) {
   sql = sql + "And name='"+name+"' ";
}
if (sex != null) {
   sql = sql + "And sex='"+sex+"' ";
}


不过呢,这样直接拼,存在SQL注入漏洞,所以最好是用PrepareStatement,然后用set来设置参数。
这个改进,你可以先尝试自己顺利成功的实现SQL拼装后,再学习下怎么改为PrepareStatement --------------------编程问答--------------------
引用 5 楼  的回复:
String sql = "Select ..... Where 1=1 ";
if (name != null) {
   sql = sql + "And name='"+name+"' ";
}
if (sex != null) {
   sql = sql + "And sex='"+sex+"' ";
}


不过呢,这样直接拼,存在SQL注入漏洞,所以最好是用Pre……


   首先真心的先谢谢你。 你说的我也懂了,也能用Stringbuffer拼接  。  
          其次就是问你、在oracle数据库里有一列dates是时间值为“2012-1-1”  只截取年份作为查询条件
               的sql语句应该怎样写。 --------------------编程问答-------------------- Oracle有函数的,你自己可以查查,大概是:

Where YEAR(dates)=2012 --------------------编程问答--------------------
引用 7 楼  的回复:
Oracle有函数的,你自己可以查查,大概是:

Where YEAR(dates)=2012


我看函数了这样能执行查询年份 select to_char(dates,'YYYY')  from 表名 、
               但怎样把这个sql语句、作为查询条件从而在查询数据啊? --------------------编程问答-------------------- 跟我7楼贴的类似:
Select *
From 表名
Where to_char(dates,'YYYY') = '2012' --------------------编程问答--------------------
引用 9 楼  的回复:
跟我7楼贴的类似:
Select *
From 表名
Where to_char(dates,'YYYY') = '2012'


   真心的 谢谢你了、
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,