锁定老帖子 主题:只有一条sql语句实现组合查询
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-03
可能楼主正在学习阶段,应该鼓励。
虽然这个语句存在很多问题,确实是比较基础的东西。 继续努力。 |
|
返回顶楼 | |
发表时间:2010-05-03
呵呵,思路挺正常啊。只是没有避免注入攻击而已
一眼能看懂多好啊 查询器适合用来组装复杂查询,也就是平常你总和用户忽悠所说的"高级查询",呵呵 |
|
返回顶楼 | |
发表时间:2010-05-03
谢谢楼上各位~
是我自己没考虑完全 目前刚开始接触SSH框架,搞得自己晕乎乎的~ |
|
返回顶楼 | |
发表时间:2010-05-03
最后修改:2010-05-03
CodingMouse 写道 我也是菜菜地模拟了一个Criteria类,像下面这样的调用:
/** * 模拟一个 Criteria 条件处理器。 * * @author CodingMouse * @version 1.0 * @since JDK1.5 */ public class Test { public static void main(String[] args) { Criteria ci = Criteria.select(AccountPOJO.class) .add(Restrictions.or(Restrictions.eq("accountid", 10), Restrictions.isNull("birthday"), Restrictions.like("accountname", "邓%"))) .add(Restrictions.le("accountid", 60), Restrictions.like("accountname", "周%")) .add(Restrictions.or(Restrictions.and( Restrictions.notLike("email", "%gmail.com"), Restrictions.ge("onlinecount", 10)))) .addOrder(Order.desc("accountstate"), Order.asc("onlinecount")); List<Object> modelList = ci.query(); for (Object model : modelList) { System.out.println(model); } } } 最终生成这样的SQL语句,目前还没加上别名、联接查询的支持: SELECT accountid, accountname, onlinecount, birthday, loginname, loginpassword, email, accountstate FROM account WHERE (accountid = ? OR birthday IS NULL OR accountname LIKE (?)) AND (accountid <= ? AND accountname LIKE (?)) OR (email NOT LIKE (?) AND onlinecount >= ?) ORDER BY accountstate DESC, onlinecount 所以,我也建议楼主自行封装几个类来实现SQL自动拼装和参数转换赋值。当然,如果你不用POJO,那这个思路就行不通。 add(Restrictions.le("accountid", 60), 17. Restrictions.like("accountname", "周%")) 可以改成這樣 add(Restrictions.le("accountid", 60), 17. Restrictions.like("accountname", "周",MatchMode.END)) |
|
返回顶楼 | |
发表时间:2010-05-03
最近为项目写了一个单表简单查询:
Where where = new Where("name = ? and age > ?","zhangsan",23); List<User> u = wrapper.select(User.class,where) 感觉这种方式比用Criteria 更加一目了然查询条件,而且结果实体类进行自动映射转换。 |
|
返回顶楼 | |
发表时间:2010-05-03
楼主先接受接受SQL吧,别着急SSH
|
|
返回顶楼 | |
发表时间:2010-05-03
个人有自己的习惯和公司要求吧
本人不太喜欢用hibernate写出连自己都看不懂的sql,这样的sql效率如何控制呢。也许是本人的hibernate比较菜 |
|
返回顶楼 | |
发表时间:2010-05-03
sarin 写道 楼主先接受接受SQL吧,别着急SSH 感觉自己的基础的确不太牢固~但学校有开SSH这门课 |
|
返回顶楼 | |