protected void setRequestURL(String path, String method) { path = Verify.startWith(path, "/") ? path : "/" + path; // request.setRequestURI(path); // request.setMethod(method); // request.setServletPath(path); Action action = ActionContext.getInstance().getAction(path, method); // Context.init(request, response, action); }
/** * 根据传入的SQL,构造一个用于COUNT(*)查询的SQL * * @param sql 传入的sql语句,可以包含'?'占位符和具名占位符 * @param args 替换sql中占位符的值,或者对应具名占位符的Map * @see li.dao.QueryBuilder#setArgs(String, Object[]) */ public String countBySql(String sql, Object[] args) { if (!Verify.startWith(sql, "SELECT")) { // 不以SELECT开头 sql = "SELECT COUNT(*) FROM " + beanMeta.table + " " + sql; } else if (!Verify.regex(sql.toUpperCase(), "COUNT\\(.*\\)")) { // 不包括COUNT(*) sql = "SELECT COUNT(*) FROM " + sql.substring(sql.toUpperCase().indexOf("FROM") + 4, sql.length()).trim(); } int index = sql.toUpperCase().indexOf("LIMIT"); if (index > 0) { sql = sql.substring(0, index); // 去掉limit部分 } return setArgs(sql, args); // 处理args }
/** 使用传入的SQL和参数,构造一个用于查询一条记录的SQL */ public String findBySql(String sql, Object[] args) { if (!Verify.startWith(sql, "SELECT")) { // 添加SELECT * FROM table 部分 sql = "SELECT * FROM " + beanMeta.table + " " + sql; } return setArgs(sql, args); // 先处理别名,再处理page }
/** * 根据传入的SQL,构建一个用于删除若干条记录的SQL * * @param sql 传入的sql语句,可以包含'?'占位符和具名占位符 * @param args 替换sql中占位符的值,或者对应具名占位符的Map * @see li.dao.QueryBuilder#setArgs(String, Object[]) */ public String deleteBySql(String sql, Object[] args) { if (!Verify.startWith(sql, "DELETE")) { sql = "DELETE FROM " + beanMeta.table + " " + sql; } return setArgs(sql, args); // 处理args }
/** * 根据传入的SQL,构建一个用于更新若干条记录的SQL * * @param sql 传入的sql语句,可以包含'?'占位符和具名占位符 * @param args 替换sql中占位符的值,或者对应具名占位符的Map * @see li.dao.QueryBuilder#setArgs(String, Object[]) */ public String updateBySql(String sql, Object[] args) { if (!Verify.startWith(sql, "UPDATE")) { sql = "UPDATE " + beanMeta.table + " " + sql; } return setArgs(sql, args); // 处理args }
/** * 根据传入的SQL和page,构造一个用于分页查询的SQL * * @param page 分页对象 * @param sql 传入的sql语句,可以包含'?'占位符和具名占位符 * @param args 替换sql中占位符的值,或者对应具名占位符的Map * @see li.dao.QueryBuilder#setPage(String, Page) * @see li.dao.QueryBuilder#setArgs(String, Object[]) */ public String listBySql(Page page, String sql, Object[] args) { if (!Verify.startWith(sql, "SELECT")) { // 添加SELECT * FROM table 部分 sql = "SELECT * FROM " + beanMeta.table + " " + sql; } return setPage(setArgs(sql, args), page); // 先处理别名,再处理args,最后处理page }