NutzCN Logo
问答 NutDao 只查询一个表中一列
发布于 3264天前 作者 tantao700 2484 次浏览 复制 上一个帖子 下一个帖子
标签:

id 是主键

select id from t_user where user_state=1

以上SQL用NutDao 怎么写?

使用 dao.query(User.class,Cnd.NEW().and("user_state","=",1))会查询出所有的属性,效率有问题

求解?

5 回复

用Daos.ext构建一下字段过滤的Dao示例

Daos.ext(dao, FieldFilter.create(User.class, "user_state")).query(User.class,Cnd.NEW().and("user_state","=",1));

自行封装一下就可以了

自定义SQL,然后用回调。

String sqls = "select id,name,password from t_user where user_state=1";
Sql sql = Sqls.create(sqls);
sql.setCallback(Sqls.callback.entities());
sql.setEntity(dao.getEntity(User.class));
dao.execute(sql);
List<User> users = sql.getList(User.class);

@projack1 如果只需要一个String属性, 那么 strs() 回调更省

Thanks..!学习了。

//可以用Record类接收,如果你非要转换的话那就用下面的方法
/**对于只返回一个记录*/
  String content="select id from t_user where user_state=@userstate";
      Sql sql= Sqls.fetchRecord(content).setParam("userstate",1);
        dao.execute(sql);
        Record record= (Record) sql.getResult();
        User user= record.toEntity(dao.getEntity(User.class));
		
		/**返回多个记录**/
      String content="select id,name,password from t_user where user_state=@user_state";
        Sql sql=Sqls.queryRecord(content).setParam("user_state",1);
		  dao.execute(sql);
		  List<Record> lists=sql.getList(Record.class);
添加回复
请先登陆
回到顶部