Struts+hibernate 多条件查询 动态组sql

EternalFaith 2009-03-31 10:34:13
jsp中有多个<html:text property="username">
<html:text property="password">等等
提供查询条件,我如何在ActionForm中判断其是否为空,不为空的组成sql,这个不能用validate做了吧,在ActionForm中单弄一个方法?这个sql字符串又如何传到业务层合理呢?谢谢XD们解答一下
...全文
429 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangan0301 2009-03-31
  • 打赏
  • 举报
回复

String sql1 = "";
String sql2 = "";



if(!username.equals("")){

sql1 = "and username='"+userID+"'";

}
if(!password.equals("")){

sql2 = " and password='"+password+"'";


}

String sql = "select * from 表名 where 1=1"+sql1+sql2;


拼字符串就可以了~~也可以用StringBuffer
对以上sql进行操作就可以了~~~~不知道你什么需求~~一般很少把密码当查询条件的~~~你在业务层写个方法把String sql当参数,然后在你想用的地方调用这个方法~~
EternalFaith 2009-03-31
  • 打赏
  • 举报
回复
自己解决了,结贴
EternalFaith 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangan0301 的回复:]
Java code
String sql1 = "";
String sql2 = "";



if(!username.equals("")){

sql1 = "and username='"+userID+"'";

}
if(!password.equals("")){

sql2 = " and password='"+password+"'";


[/Quote]
似乎这个sql组成的有些问题,我自己改了。
另外4楼的问题,没人答了啊。
再者,我有个新的想法,这个sql好像在视图层的Bean中就组成了,那我后面的VO,PO还有什么作用?不做了?这样是不是失去使用hibernate的意义,会不会造成系统不平衡,效率有没有问题?
萱哥老了 2009-03-31
  • 打赏
  • 举报
回复
关注 启迪
EternalFaith 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liujinfengliuyi 的回复:]
validate
这个是验证的

不能 在这里做

就做到validate()方法里面

你可以 在你的ActionForm中 声明一个 成员String sql;
然后 在你的业务逻辑里面 可以通过Form来获取到了
[/Quote]
呵呵,我没写清楚,我写的validate就是validate()方法。
validate()方法的返回值类型不是ActionErrors吗?
我想的是在Form中单写一个方法,没有这个必要吗?还是不用管这个返回值,在validate()里面操作完字符串sql了就可以了?
热烈的红颜 2009-03-31
  • 打赏
  • 举报
回复
validate
这个是验证的

不能 在这里做

就做到validate()方法里面

你可以 在你的ActionForm中 声明一个 成员String sql;
然后 在你的业务逻辑里面 可以通过Form来获取到了
huangan0301 2009-03-31
  • 打赏
  • 举报
回复

String sql1 = "";
String sql2 = "";



if(!username.equals("")){

sql1 = "and username='"+username+"'";

}
if(!password.equals("")){

sql2 = " and password='"+password+"'";


}

String sql = "select * from 表名 where 1=1"+sql1+sql2;

userID改为username,其实你从ActionForm中得到的值~~~

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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