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);
}
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;
}
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();
}
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);
}
}
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);
}
Aggregations