NutzCN Logo
问答 nutz有没有类似mybaits的mapper,用来书写sql,并直接告诉其输出POJO形式,自己适配。
发布于 3153天前 作者 mingkaili 1773 次浏览 复制 上一个帖子 下一个帖子
标签:

如题:
现在,我自己要写一个sql语句,好麻烦。
code:
public List selCommBeforeUpd() throws Exception {

    StringBuffer sbSql = new StringBuffer();
    sbSql.append("select c.*,");
    sbSql.append("  from tb_commodity c ");
    sbSql.append(" where exists (select * from mv_search q ");
    sbSql.append("                where q.goodsId = c.qizhouId");
    sbSql.append("                  and q.lastUpdate != c.lastUpdate) ");

    Sql sql = Sqls.create(sbSql.toString());
    sql.setCallback(new SqlCallback() {

       @Override
       public Object invoke(Connection conn, ResultSet rs, Sql sql)
          throws SQLException {
         List<Commodity> list = new ArrayList<Commodity>();
         while (rs.next()) {
          Commodity commodity = new Commodity();
          commodity.setId(rs.getString("id"));
          commodity.setDestId(rs.getString("destId"));

          list.add(commodity);
         }

         return list;
       }
    });

    return sql.getList(Commodity.class);
}
2 回复

首先,mapper 有, 看链接 仿mybatis mapper 接口,有意义吗?
然后,你这段代码,用内置的callback已经能搞定

Sql sql = Sqls.queryEntity(sbSql.toString());
sql.setEntity(dao.getEntity(Commodity.class));
dao.exec(sql);
return sql.getList(Commodity.class);

PS: 其实可以一行写完,如果版本比较新的话

return dao.exec(Sqls.queryEntity(sbSql.toString()).setEntity(dao.getEntity(Commodity.class)).getList(Commodity.class);
添加回复
请先登陆
回到顶部