Examples of ExqlPattern


Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

public class SystemInterpreter implements Interpreter {

    @Override
    public void interpret(StatementRuntime runtime) {
        // 转换语句中的表达式
        ExqlPattern pattern = ExqlPatternImpl.compile(runtime.getSQL());
        ExqlContextImpl context = new ExqlContextImpl(runtime.getSQL().length() + 32);

        try {
            pattern.execute(context, runtime.getParameters(), runtime.getMetaData()
                    .getDAOMetaData().getConstants());
            runtime.setArgs(context.getParams());
            runtime.setSQL(context.flushOut());
        } catch (Exception e) {
            String daoInfo = runtime.getMetaData().toString();
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

    public static void main(String[] args) throws Exception {
        // 转换语句中的表达式
        String sql = "insert ignore into table_name "
                + "(`id`,`uid`,`favable_id`,`addtime`,`ranking`) "//
                + "values (:1,:2,now(),0)";
        ExqlPattern pattern = ExqlPatternImpl.compile(sql);
        ExqlContextImpl context = new ExqlContextImpl(sql.length() + 32);

        Map<String, Object> parametersAsMap = new HashMap<String, Object>();
        parametersAsMap.put(":1", "p1");
        parametersAsMap.put(":2", "p2");

        String result = pattern.execute(context, parametersAsMap);
        System.out.println(result);
    }
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

        String expr3 = "expr3";
        String expr4 = "expr4";
        String expr5 = "expr5";

        // 编译下列语句
        ExqlPattern pattern = ExqlPatternImpl
                .compile("SELECT #(:expr1.length()), :expr2.class.name,"
                        + " ##(:expr3) WHERE #if(:expr4) {e = :expr4} #else {e IS NULL}"
                        + "#for(variant in :expr5.bytes) { AND c = :variant}" // NL
                        + " GROUP BY ##(:expr1) ASC");

        ExqlContext context = new ExqlContextImpl(1024);

        HashMap<String, Object> map = new HashMap<String, Object>();

        map.put("expr1", expr1);
        map.put("expr2", expr2);
        map.put("expr3", expr3);
        map.put("expr4", expr4);
        map.put("expr5", expr5);

        Assert.assertEquals("SELECT ?, ?, expr3 WHERE e = ? AND c = ? AND c = ? "
                + "AND c = ? AND c = ? AND c = ? GROUP BY expr1 ASC", // NL
                pattern.execute(context, map));

        Object[] expectArray = new Object[] { expr1.length(), expr2.getClass().getName(), expr4,
                expr5.getBytes()[0], expr5.getBytes()[1], expr5.getBytes()[2], expr5.getBytes()[3],
                expr5.getBytes()[4] };
        Object[] paramArray = context.getParams();
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

        String expr3 = "expr3";
        String expr4 = "expr4";
        String expr5 = "expr5";

        // 编译下列语句
        ExqlPattern pattern = ExqlPatternImpl
                .compile("SELECT #($expr1.length()), #($expr2.class.name),"
                        + " $expr3 WHERE #if($expr4) {e = #($expr4)} #else {e IS NULL}"
                        + "#for(variant in $expr5.bytes) { AND c = :variant}" // NL
                        + " GROUP BY $expr1 ASC");

        ExqlContext context = new ExqlContextImpl(1024);

        HashMap<String, Object> map = new HashMap<String, Object>();

        map.put("expr1", expr1);
        map.put("expr2", expr2);
        map.put("expr3", expr3);
        map.put("expr4", expr4);
        map.put("expr5", expr5);

        Assert.assertEquals("SELECT ?, ?, expr3 WHERE e = ? AND c = ? AND c = ? "
                + "AND c = ? AND c = ? AND c = ? GROUP BY expr1 ASC", // NL
                pattern.execute(context, map, map));

        Object[] expectArray = new Object[] { expr1.length(), expr2.getClass().getName(), expr4,
                expr5.getBytes()[0], expr5.getBytes()[1], expr5.getBytes()[2], expr5.getBytes()[3],
                expr5.getBytes()[4] };
        Object[] paramArray = context.getParams();
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

        String expr3 = "expr3";
        String expr4 = "expr4";
        String expr5 = "expr5";

        // 编译下列语句
        ExqlPattern pattern = ExqlPatternImpl
                .compile("SELECT #(:expr1.length()), #($expr2.bytes[:expr1.length() - 1]),"
                        + " $expr3 WHERE #if($expr4) {e = :expr4} #else {e IS NULL}"
                        + "#for(variant in $expr5.bytes) { AND c = :variant}" // NL
                        + " GROUP BY $expr1 ASC");

        ExqlContext context = new ExqlContextImpl(1024);

        HashMap<String, Object> map = new HashMap<String, Object>();

        map.put("expr1", expr1);
        map.put("expr2", expr2);
        map.put("expr3", expr3);
        map.put("expr4", expr4);
        map.put("expr5", expr5);

        Assert.assertEquals("SELECT ?, ?, expr3 WHERE e = ? AND c = ? AND c = ? "
                + "AND c = ? AND c = ? AND c = ? GROUP BY expr1 ASC", // NL
                pattern.execute(context, map, map));

        Object[] expectArray = new Object[] { expr1.length(), expr2.getBytes()[expr1.length() - 1],
                expr4, expr5.getBytes()[0], expr5.getBytes()[1], expr5.getBytes()[2],
                expr5.getBytes()[3], expr5.getBytes()[4] };
        Object[] paramArray = context.getParams();
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

            System.out.println("group 1: " + matcher.group(1));
            System.out.println("group 2: " + matcher.group(2));
        }

        // 编译下列语句
        ExqlPattern pattern = new ExqlCompiler(string).compile();

        ExqlContext context = new ExqlContextImpl(string.length());

        HashMap<String, Object> map = new HashMap<String, Object>();

        map.put("expr1", "expr1");
        map.put("expr2", "expr2");
        map.put("expr3", "expr3");
        map.put("expr4", "expr4");
        map.put("expr5", "expr5");
        // map.put("expr6", "expr6");
        map.put("expr7", "expr7");

        System.out.println(pattern.execute(context, map, map));
        System.out.println(Arrays.toString(context.getParams()));
    }
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

     * @return ExqlPattern 对象
     */
    public static ExqlPattern compile(String pattern) {

        // 从缓存中获取编译好的语句
        ExqlPattern compiledPattern = cache.get(pattern);
        if (compiledPattern == null) {

            // 输出日志
            if (logger.isDebugEnabled()) {
                logger.debug("EXQL pattern compiling:\n    pattern: " + pattern);
View Full Code Here

Examples of net.paoding.rose.jade.statement.expression.ExqlPattern

    // 进行简单测试
    public static void main(String... args) throws Exception {

        // 编译下列语句
        ExqlPattern pattern = ExqlPatternImpl
                .compile("SELECT #(:expr1.length()), :expr2.class.name,"
                        + " ##(:expr3) WHERE #if(:expr4) {e = :expr4} #else {e IS NULL}"
                        + "#for(variant in :expr5.bytes) { AND c = :variant}" // NL
                        + " GROUP BY #!(:expr1) ASC");

        ExqlContext context = new ExqlContextImpl(1024);

        HashMap<String, Object> map = new HashMap<String, Object>();

        map.put("expr1", "expr1");
        map.put("expr2", "expr2");
        map.put("expr3", "expr3");
        map.put("expr4", "expr4");
        map.put("expr5", "expr5");

        System.out.println(pattern.execute(context, map));
        System.out.println(Arrays.toString(context.getParams()));
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.