Search in sources :

Example 6 with Record

use of com.jfinal.plugin.activerecord.Record in project jfinal by jfinal.

the class AnsiSqlDialect method takeOverDbPaginate.

@SuppressWarnings("rawtypes")
public Page<Record> takeOverDbPaginate(Connection conn, int pageNumber, int pageSize, Boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) throws SQLException {
    String totalRowSql = "select count(*) " + replaceOrderBy(sqlExceptSelect);
    List result = CPI.query(conn, totalRowSql, paras);
    int size = result.size();
    if (isGroupBySql == null) {
        isGroupBySql = size > 1;
    }
    long totalRow;
    if (isGroupBySql) {
        totalRow = size;
    } else {
        totalRow = (size > 0) ? ((Number) result.get(0)).longValue() : 0;
    }
    if (totalRow == 0) {
        return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, 0, 0);
    }
    int totalPage = (int) (totalRow / pageSize);
    if (totalRow % pageSize != 0) {
        totalPage++;
    }
    if (pageNumber > totalPage) {
        return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, totalPage, (int) totalRow);
    }
    StringBuilder sql = new StringBuilder();
    sql.append(select).append(" ").append(sqlExceptSelect);
    PreparedStatement pst = conn.prepareStatement(sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
    for (int i = 0; i < paras.length; i++) {
        pst.setObject(i + 1, paras[i]);
    }
    ResultSet rs = pst.executeQuery();
    // move the cursor to the start
    int offset = pageSize * (pageNumber - 1);
    for (int i = 0; i < offset; i++) {
        if (!rs.next()) {
            break;
        }
    }
    List<Record> list = buildRecord(rs, pageSize);
    if (rs != null)
        rs.close();
    if (pst != null)
        pst.close();
    return new Page<Record>(list, pageNumber, pageSize, totalPage, (int) totalRow);
}
Also used : ResultSet(java.sql.ResultSet) ArrayList(java.util.ArrayList) List(java.util.List) Page(com.jfinal.plugin.activerecord.Page) Record(com.jfinal.plugin.activerecord.Record) PreparedStatement(java.sql.PreparedStatement)

Example 7 with Record

use of com.jfinal.plugin.activerecord.Record in project my_curd by qinyou.

the class PoiKit method export.

public HSSFWorkbook export() {
    Preconditions.checkNotNull(headers, "headers can not be null");
    Preconditions.checkNotNull(columns, "columns can not be null");
    Preconditions.checkArgument(cellWidth >= 0, "cellWidth < 0");
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet(sheetName);
    HSSFRow row = null;
    HSSFCell cell = null;
    if (headers.length > 0) {
        row = sheet.createRow(0);
        if (headerRow <= 0) {
            headerRow = HEADER_ROW;
        }
        headerRow = Math.min(headerRow, MAX_ROWS);
        for (int h = 0, lenH = headers.length; h < lenH; h++) {
            @SuppressWarnings("deprecation") Region // 合并从第rowFrom行columnFrom列
            region = new Region(0, (short) h, (short) headerRow - 1, (short) h);
            // 到rowTo行columnTo的区域
            sheet.addMergedRegion(region);
            // 得到所有区域
            sheet.getNumMergedRegions();
            if (cellWidth > 0) {
                sheet.setColumnWidth(h, cellWidth);
            }
            cell = row.createCell(h);
            cell.setCellValue(headers[h]);
            HSSFCellStyle style = wb.createCellStyle();
            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            style.setFillForegroundColor(HSSFColor.AQUA.index);
            cell.setCellStyle(style);
        }
    }
    if (data.size() == 0) {
        return wb;
    }
    for (int i = 0, len = data.size(); i < len; i++) {
        row = sheet.createRow(i + headerRow);
        Object obj = data.get(i);
        if (obj == null) {
            continue;
        }
        if (obj instanceof Map) {
            processAsMap(columns, row, obj);
        } else if (obj instanceof Model) {
            processAsModel(columns, row, obj);
        } else if (obj instanceof Record) {
            processAsRecord(columns, row, obj);
        }
    }
    return wb;
}
Also used : Model(com.jfinal.plugin.activerecord.Model) Region(org.apache.poi.hssf.util.Region) Record(com.jfinal.plugin.activerecord.Record) Map(java.util.Map)

Example 8 with Record

use of com.jfinal.plugin.activerecord.Record in project my_curd by qinyou.

the class CsvUtil method createCSV.

/**
 * 将文本头与数据共同转成csv字符串
 *
 * @param headers 列属性
 * @param data    数据
 * @param columns 需要显示列的key值
 * @return csv字符串
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
public static String createCSV(List headers, List data, List columns) {
    StringBuffer strOut = new StringBuffer("");
    if (null != headers && !headers.isEmpty()) {
        // 如果文本不为空则添加到csv字符串中
        listToCSV(strOut, headers);
    }
    if (null == data || data.isEmpty()) {
        return strOut.toString();
    }
    Iterator itr = data.iterator();
    while (itr.hasNext()) {
        // 将数据添加到csv字符串
        Object obj = itr.next();
        Class cls = obj.getClass();
        if (cls != null && cls.isArray()) {
            if (obj != null) {
                Object[] objs = (Object[]) obj;
                if (objs != null) {
                    for (short i = 0; i < objs.length; i++) {
                        createCol(strOut, objs[i]);
                        strOut.append(",");
                    }
                    // 去点多余逗号
                    strOut = strOut.deleteCharAt(strOut.length() - 1);
                    strOut.append("\n");
                }
            }
        } else if (obj instanceof List) {
            List objlist = (List) obj;
            if (null == columns || columns.isEmpty()) {
                // 如果没有限制,默认全部显示
                listToCSV(strOut, objlist);
            } else {
                for (int i = 0; i < columns.size(); i++) {
                    createCol(strOut, objlist.get((Integer) columns.get(i)));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            }
        } else if (obj instanceof Map) {
            Map objmap = (Map) obj;
            if (null == columns || columns.isEmpty()) {
                // 如果没有限制,默认全部显示
                Set keyset = objmap.keySet();
                for (Object key : keyset) {
                    createCol(strOut, objmap.get(key));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            } else {
                for (int i = 0; i < columns.size(); i++) {
                    createCol(strOut, objmap.get(columns.get(i)));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            }
        } else if (obj instanceof Model) {
            Model objmodel = (Model) obj;
            if (null == columns || columns.isEmpty()) {
                // 如果没有限制,默认全部显示
                Set<Entry<String, Object>> entries = objmodel._getAttrsEntrySet();
                for (Entry entry : entries) {
                    createCol(strOut, entry.getValue());
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            } else {
                for (int i = 0; i < columns.size(); i++) {
                    createCol(strOut, objmodel.get(columns.get(i) + ""));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            }
        } else if (obj instanceof Record) {
            Record objrecord = (Record) obj;
            Map<String, Object> map = objrecord.getColumns();
            if (null == columns || columns.isEmpty()) {
                // 如果没有限制,默认全部显示
                Set<String> keys = map.keySet();
                for (String key : keys) {
                    createCol(strOut, objrecord.get(key));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            } else {
                for (int i = 0; i < columns.size(); i++) {
                    createCol(strOut, objrecord.get(columns.get(i) + ""));
                    strOut.append(",");
                }
                strOut = strOut.deleteCharAt(strOut.length() - 1);
                strOut.append("\n");
            }
        } else {
            while (itr.hasNext()) {
                Object objs = itr.next();
                if (objs != null) {
                    createCol(strOut, objs);
                    strOut.append("\n");
                }
            }
        }
        obj = null;
    }
    return strOut.toString();
}
Also used : Entry(java.util.Map.Entry) Model(com.jfinal.plugin.activerecord.Model) Record(com.jfinal.plugin.activerecord.Record)

Example 9 with Record

use of com.jfinal.plugin.activerecord.Record in project my_curd by qinyou.

the class SysMenuController method deleteAction.

@Before(Tx.class)
public void deleteAction() {
    Integer id = getParaToInt("id");
    try {
        Record record = Db.findFirst("select getChildLst(?,'sys_menu') as childrenIds ", id);
        // 子、孙 id
        String childrenIds = record.getStr("childrenIds");
        // 删除相应 角色菜单
        String deleteSql = "delete from sys_menu where id in (" + childrenIds + ")";
        Db.update(deleteSql);
        // 删除角色菜单关联数据
        deleteSql = "delete from sys_role_menu where menu_id in (" + childrenIds + ") ";
        Db.update(deleteSql);
        renderText(Constant.DELETE_SUCCESS);
    } catch (ActiveRecordException e) {
        e.printStackTrace();
        renderText(Constant.DELETE_FAIL);
    }
}
Also used : Record(com.jfinal.plugin.activerecord.Record) ActiveRecordException(com.jfinal.plugin.activerecord.ActiveRecordException) Before(com.jfinal.aop.Before)

Example 10 with Record

use of com.jfinal.plugin.activerecord.Record in project my_curd by qinyou.

the class SysOrgController method queryUser.

@Before(SearchSql.class)
public void queryUser() {
    int pageNumber = getAttr("pageNumber");
    int pageSize = getAttr("pageSize");
    String where = getAttr(Constant.SEARCH_SQL);
    Integer id = getParaToInt("orgId");
    String sqlSelect = " select * ";
    String sqlExceptSelect = " from sys_user  ";
    if (id != null) {
        Record record = Db.findFirst("select getChildLst(?,'sys_org') as childrenIds ", id);
        // 子、孙 id
        String childrenIds = record.getStr("childrenIds");
        if (StrKit.notBlank(childrenIds)) {
            sqlExceptSelect += " where  org_id  in  (" + childrenIds + ")";
        }
        if (StrKit.notBlank(where)) {
            sqlExceptSelect += " and   ( " + where + " )";
        }
    } else {
        if (StrKit.notBlank(where)) {
            sqlExceptSelect += " where " + where;
        }
    }
    sqlExceptSelect += " order by create_time ";
    Page<SysUser> sysUsers = SysUser.dao.paginate(pageNumber, pageSize, sqlSelect, sqlExceptSelect);
    renderDatagrid(sysUsers);
}
Also used : SysUser(com.hxkj.system.model.SysUser) Record(com.jfinal.plugin.activerecord.Record) Before(com.jfinal.aop.Before)

Aggregations

Record (com.jfinal.plugin.activerecord.Record)14 ArrayList (java.util.ArrayList)6 Before (com.jfinal.aop.Before)3 Model (com.jfinal.plugin.activerecord.Model)3 ResultSetMetaData (java.sql.ResultSetMetaData)3 ActiveRecordException (com.jfinal.plugin.activerecord.ActiveRecordException)2 Page (com.jfinal.plugin.activerecord.Page)2 PreparedStatement (java.sql.PreparedStatement)2 ResultSet (java.sql.ResultSet)2 List (java.util.List)2 Map (java.util.Map)2 SysUser (com.hxkj.system.model.SysUser)1 Enumeration (java.util.Enumeration)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 Entry (java.util.Map.Entry)1 Region (org.apache.poi.hssf.util.Region)1