nutz多表关联查询

来源:互联网 发布:长沙软件职业学院地址 编辑:程序博客网 时间:2024/05/17 23:29

1.网上讲解

a.先取为Record,然后转Pojo及获取属性(尝试没有成功)
Sql sql = Sqls.queryRecord("select a.*,b.PROJECT_NAME from t_module a left join t_project b on a.PROJECT_ID = b.ID where b.project_name like '%测试模块%'");dao.execute(sql);List<Record> list = sql.getList(Record.class);for (Record re : list) {  ModuleBean m = re.toEntity(dao.getEntity(ModuleBean.class, "a.");  String projectName = re.getString("b.PROJECT_NAME");  // 继续你想做的事}
b.自定义SqlCallback(尝试使用)
final List<XXXX> list = new ArrayList();Sql sql = Sqls.create("select a.*,b.PROJECT_NAME from t_module a left join t_project b on a.PROJECT_ID = b.ID where b.project_name like '%测试模块%'");sql.setCallback(new SqlCallback(){    public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {    while (rs.next()) {  ModuleBean m = dao.getEntity(ModuleBean.class).getObject(rs, null, "a.");  String projectName = rs.getString("b.PROJECT_NAME");}}});dao.execute(sql);

2.实例编写

String sqls = "select p.*,m.* from purchase p ,member m where p.user_id = m.user_id and p.status= '10' and m.type = '10' and m.status = '10'";String sqlc = "select count(*) from purchase p ,member m where p.user_id = m.user_id and p.status= '10' and m.type = '10' and m.status = '10'";Sql sqlcount = Sqls.create(sqlc);sqlcount.setCallback(new SqlCallback() {public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {int count = 0;while (rs.next()) {count = rs.getInt(1);}return count;}});yipeiDao.execute(sqlcount);int count = sqlcount.getInt();Sql sql = Sqls.create(sqls);sql.setCallback(new SqlCallback() {public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {List<Map> list = new ArrayList<Map>();while (rs.next()) {Map map = new HashMap();Purchase p = yipeiDao.getEntity(Purchase.class).getObject(rs, null, "p.");Member m = yipeiDao.getEntity(Member.class).getObject(rs, null, "m.");map.put("purchase", p);map.put("member", m);list.add(map);}return list;}});yipeiDao.execute(sql);List<Map> rs = sql.getList(Map.class);if (rs != null && rs.size() > 0) {List<Map> rl = new ArrayList<Map>();for (Map m : rs) {Map cmap = new HashMap();Purchase purchase = (Purchase) m.get("purchase");Member member1 = (Member) m.get("member");rl.add(cmap);}}



0 0
原创粉丝点击