mybatis sql语句构建器

来源:互联网 发布:艾默生ups监控软件 编辑:程序博客网 时间:2024/05/29 02:43
@Repositorypublic interface FormMapper {    //type:要调用的class,method:要调用的方法    @SelectProvider(type = FromSql.class, method = "getFrom")    List<Record> getFrom(List<Record> records);    @Transactional    @SelectProvider(type = FromSql.class, method = "demo")    String demo();    class FromSql {        public String demo() {            return new SQL().SELECT(" '.' from dual").toString();        }        public String getFrom(final List<Record> records) {            SQL sql = new SQL();            String[] strs;            String applyField, tableName, associationTable, field;            for (Record r : records) {                associationTable = r.getStr("table_name");                if (CommonUtils.isEmpty(associationTable)) {                    sql.SELECT(r.getStr("table_id" + "." + r.getStr("field")));                } else {                    applyField = r.getStr("apply_field");                    strs = applyField.split(",");                    if ("true".equals(r.getStr("is_subquery"))) {                        sql.SELECT(CommonUtils.formatSubquerySql(r.getStr("show_field"), associationTable,                                r.getStr("store_field"), r.getStr("table_id"), r.getStr("field"), r.getStr("field")));                        if (!CommonUtils.isEmpty(applyField)) {                            for (String str : strs) {                                sql.SELECT(CommonUtils.formatSubquerySql(str, associationTable,                                        r.getStr("store_field"), r.getStr("table_id"), r.getStr("field"), str));                            }                        }                    } else {                        sql.SELECT(associationTable + "." + r.getStr("show_field ") + r.getStr("field"));                        if (!CommonUtils.isEmpty(applyField)) {                            for (String str : strs) {                                sql.SELECT(associationTable + "." + str);                            }                        }                        sql.LEFT_OUTER_JOIN(associationTable + " on " + r.getStr("table_id") + "." + r.getStr("field")                                + " = " + associationTable + "." + r.getStr("store_field"));                    }                }            }            return sql.toString();        }    }}

SQL api http://www.mybatis.org/mybatis-3/zh/statement-builders.html

原创粉丝点击