您的位置:首页 > 数据库

使用NutzDao进行复杂SQL条件查询

2017-08-19 09:42 435 查看
使用NutzDao进行复杂SQL条件查询

NutzDao中支持对数据的多种复杂查询,用户可以很方便的查询到想得到的数据。

使用Cnd对象按条件查询

org.nutz.dao.Dao接口的query方法的第二个参数提供了SQL条件查询功能,这个参数是org.nutz.dao.Cnd对象,它是org.nutz.dao.Condition接口的实现类。该类中包含两个方法:Cnd.wrap()和Cnd.where()方法。

Cnd.wrap()方法

该方法中提供一个字符串参数,该字符串参数就是你的SQL语句where之后的查询条件,这样SQL语句的查询条件就以直接硬编码的方式存在。其代码如下:

ListuserList = dao.query(User.class,
Cnd.wrap("uname like '%ang%' and uage=20"), null);

Cnd.where()方法

该方法包含三个字符串参数,第一个参数是数据表中所对应的字段,第二个参数是SQL语句的查询条件关键字或者符号,第三个参数是SQL语句的参数;其代码如下:

ListuserList = dao.query(User.class,
Cnd.where("uname", "LIKE","y%"), null);

还可以使用Cnd.where()方法进行嵌套查询,这里用到了NutzDao中的另一个对象,ExpGroup,使用该对象构建连个SQL条件表达式作为参数传到Cnd.where()方法中。如下:

// 使用ExpGroup,Cnd.where()嵌套表达式,进行复杂查询

ExpGroup group1 = Cnd.exps("uname", "LIKE", "%y").and("uage", ">", "11");

ExpGroup group2 = Cnd.exps("uname", "LIKE", "%c%").and("uage", "<", "30");

Condition cnd = Cnd.where(group1).or(group2);

 

List userList = dao.query(User.class,
cnd , null);

Useruser = new User();

所以今后在使用NutzDao进行复杂查询时,应该使用Cnd对象进行查询。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 对象 NutzDao
相关文章推荐