// 方式1, 用底层自带的方式往对象中设值 ------------------- @Override public void getDatagrid1(SzoJdbcEntity pageObj, DataGrid dataGrid) { // * String sqlWhere = getSqlWhere(pageObj); // 取出总数据条数(为了分页处理, 如果不用分页,取iCount值的这个处理可以不要) String sqlCnt = "select count(*) from szo_demo t"; if (!sqlWhere.isEmpty()) { sqlCnt += " where" + sqlWhere; } Long iCount = getCountForJdbcParam(sqlCnt, null); String sql = "select t.id,t.user_name as userName,d.departname as depId,t.sex,t.age,t.birthday,t.email,t.mobile_phone as mobilePhone from szo_demo t left join t_s_depart d on d.id=t.dep_id"; if (!sqlWhere.isEmpty()) { sql += " where" + sqlWhere; } // 结果往SzoDemo这个类的各属性中设值(属性名如果和数据库中不一致,需要在SQL文中命别名,如userName) List list = findObjForJdbc(sql, dataGrid.getPage(), dataGrid.getRows(), SzoJdbcEntity.class); // sex(性别的处理见方式2,可类似处理,重新循环一遍) // 返回Grid数据 dataGrid.setReaults(list); dataGrid.setTotal(iCount.intValue()); }
// 推荐方法 // 方式3, 取值进一步自己处理(直接转换成easyUI的datagrid需要的东西,执行效率最高,最自由) ------------------------------- @Override public JSONObject getDatagrid3(SzoJdbcEntity pageObj, DataGrid dataGrid) { String sqlWhere = getSqlWhere(pageObj); // 取出总数据条数(为了分页处理, 如果不用分页,取iCount值的这个处理可以不要) String sqlCnt = "select count(*) from szo_demo t"; if (!sqlWhere.isEmpty()) { sqlCnt += " where" + sqlWhere; } Long iCount = getCountForJdbcParam(sqlCnt, null); // 取出当前页的数据 String sql = "select t.*,d.departname from szo_demo t left join t_s_depart d on d.id=t.dep_id"; if (!sqlWhere.isEmpty()) { sql += " where" + sqlWhere; } List<Map<String, Object>> mapList = findForJdbc(sql, dataGrid.getPage(), dataGrid.getRows()); // 将结果集转换成页面上对应的数据集 Db2Page[] db2Pages = { new Db2Page("id"), new Db2Page("userName", "user_name", null), new Db2Page("depId", "departName", null), new Db2Page("sex", null, new MyDataExchangerSex()), new Db2Page("age"), new Db2Page("birthday"), new Db2Page("email"), new Db2Page("mobilePhone", "mobile_phone", null) }; JSONObject jObject = getJsonDatagridEasyUI(mapList, iCount.intValue(), db2Pages); return jObject; // end of 方式3 ========================================= */ }
@Override public void listAllByJdbc(DataGrid dataGrid) { // 从对应路径中,获取SQL [/szo/demo/sql/test/SzoJdbcService_listAllByJdbc.sql] String sql = SzoSqlUtil.getMethodSql(SzoSqlUtil.getMethodUrl()); String countsql = SzoSqlUtil.getCountSqlBySql(sql); List<Map<String, Object>> maplist = jdbcDao.findForJdbcParam(sql, dataGrid.getPage(), dataGrid.getRows()); Long count = jdbcDao.getCountForJdbcParam(countsql); dataGrid.setTotal(count.intValue()); dataGrid.setReaults(maplist); }
// 方式2, 取值自己处理(代码量多一些,但执行效率应该会稍高一些) ------------------------------- @Override public void getDatagrid2(SzoJdbcEntity pageObj, DataGrid dataGrid) { String sqlWhere = getSqlWhere(pageObj); // 取出总数据条数(为了分页处理, 如果不用分页,取iCount值的这个处理可以不要) String sqlCnt = "select count(*) from szo_demo t"; if (!sqlWhere.isEmpty()) { sqlCnt += " where" + sqlWhere; } Long iCount = getCountForJdbcParam(sqlCnt, null); String sql = "select t.*,d.departname from szo_demo t left join t_s_depart d on d.id=t.dep_id"; if (!sqlWhere.isEmpty()) { sql += " where" + sqlWhere; } List<Map<String, Object>> mapList = findForJdbc(sql, dataGrid.getPage(), dataGrid.getRows()); List list = new ArrayList(); SzoJdbcEntity obj = null; for (Map<String, Object> m : mapList) { try { obj = new SzoJdbcEntity(); obj.setId((String) m.get("id")); obj.setUserName((String) m.get("user_name")); obj.setDepId((String) m.get("departname")); String sex = (String) m.get("sex"); if (sex == null) { obj.setSex(""); } else if (sex.equals("0")) { obj.setSex("男"); } else { obj.setSex("女"); } obj.setAge((Integer) m.get("age")); Date birthday = (Date) m.get("birthday"); if (birthday != null) { obj.setBirthday(birthday); } obj.setEmail((String) m.get("email")); obj.setMobilePhone((String) m.get("mobile_phone")); list.add(obj); } catch (Exception e) { e.printStackTrace(); } } // 返回Grid数据 dataGrid.setReaults(list); dataGrid.setTotal(iCount.intValue()); }