Package org.nutz.dao

Examples of org.nutz.dao.Chain


        if (en != null)
            tableName = en.getTableName();
        if (tableName == null)
            throw Lang.makeThrow(DaoException.class, "tableName and en is NULL !!");
        final StringBuilder sql = new StringBuilder("UPDATE ").append(tableName).append(" SET ");
        Chain head = chain.head();
        final List<Object> values = new ArrayList<Object>();
        final List<ValueAdaptor> adaptors = new ArrayList<ValueAdaptor>();
        while (head != null) {
            MappingField mf = null;
            if (en != null)
                mf = en.getField(head.name());
            String colName = head.name();
            if (mf != null)
                colName = mf.getColumnName();
            sql.append(colName).append("=");
            if (head.special()) {
              if (head.value() != null && head.value() instanceof String) {
                String str = (String)head.value();
                if (str.length() > 0) {
                  switch (str.charAt(0)) {
            case '+':
            case '-':
            case '*':
            case '/':
            case '%':
            case '&':
            case '^':
            case '|':
              sql.append(colName);
              break;
            }
                }
                }
                sql.append(head.value());
            } else {
                sql.append("?");
                values.add(head.value());
                ValueAdaptor adaptor = Jdbcs.getAdaptorBy(head.value());
                if (mf != null && mf.getAdaptor() != null)
                    adaptor = mf.getAdaptor();
                adaptors.add(adaptor);
            }
            sql.append(" ");
            head = head.next();
            if (head != null)
                sql.append(", ");
        }
        if (cnd != null)
            sql.append(" ").append(cnd.toSql(en));
View Full Code Here


            throw Lang.makeThrow(DaoException.class, "tableName and en is NULL !!");
        final StringBuilder sql = new StringBuilder("INSERT INTO ").append(tableName).append(" (");
        StringBuilder _value_places = new StringBuilder(" VALUES(");
        final List<Object> values = new ArrayList<Object>();
        final List<ValueAdaptor> adaptors = new ArrayList<ValueAdaptor>();
        Chain head = chain.head();
        while (head != null) {
          String colName = head.name();
          MappingField mf = null;
            if (en != null) {
                mf = en.getField(colName);
                if (mf != null)
                  colName = mf.getColumnName();
            }
            sql.append(colName);
           
            if (head.special()) {
              _value_places.append(head.value());
            } else {
                if (en != null)
                    mf = en.getField(head.name());
                _value_places.append("?");
                values.add(head.value());
                ValueAdaptor adaptor = Jdbcs.getAdaptorBy(head.value());
                if (mf != null && mf.getAdaptor() != null)
                    adaptor = mf.getAdaptor();
                adaptors.add(adaptor);
            }
           
            head = head.next();
            if (head != null) {
                sql.append(", ");
                _value_places.append(", ");
            }
        }
View Full Code Here

    @Test
    public void test_chain_from_object() {
        Worker w = new Worker();
        w.age = 20;
        w.name = "zzh";
        Chain c = Chain.from(w, FieldMatcher.make("age|name", null, true));
        Map<String, Object> map = c.toMap();
        assertEquals(2, map.size());
        assertEquals("zzh", map.get("name"));
        assertEquals(20, ((Short) map.get("age")).intValue());
    }
View Full Code Here

     * Issue 93
     */
    @Test
    public void test_chain_from_map() {
        Map<?, ?> map = Lang.map("{a:12,b:true,c:'haha'}");
        Chain c = Chain.from(map);
        Map<String, Object> map2 = c.toMap();
        assertTrue(Lang.equals(map, map2));
    }
View Full Code Here

    /**
     * Issue 93
     */
    @Test
    public void test_chain_to_object() {
        Chain c = Chain.from(Lang.map("{name:'zzh',age:30}"));
        Worker w = c.toObject(Worker.class);
        assertEquals("zzh", w.name);
        assertEquals(30, w.age);
    }
View Full Code Here

    public InsertByChainPItem(Chain chain) {
        names = new String[chain.size()];
        values = new Object[chain.size()];

        // 将值链所有内容 copy 到两个数组中去,以便之后遍历
        Chain c = chain.head();
        int i = 0;
        while (null != c) {
            names[i] = c.name();
            values[i] = c.value();
            i++;
            c = c.next();
        }
        if (i == 0)
            throw Lang.makeThrow("Insert empty chain!");
    }
View Full Code Here

    }

    public void joinSql(Entity<?> en, StringBuilder sb) {
        if (chain.size() > 0) {
            sb.append(" SET ");
            Chain c = chain.head();
            while (c != null) {
                sb.append(this._fmtcolnm(en, c.name()));
                sb.append("=? ,");
                c = c.next();
            }
            sb.deleteCharAt(sb.length() - 1);
            sb.append(' ');
        } else {
            throw Lang.makeThrow("Entity chain for UPDATE '%s'", en.getType().getName());
View Full Code Here

            throw Lang.makeThrow("Entity chain for UPDATE '%s'", en.getType().getName());
        }
    }

    public int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off) {
        Chain c = chain.head();
        while (c != null) {
            MappingField mf = en.getField(c.name());
            // TODO 移除这种数组下标用++的写法!!!
            if (c.adaptor() == null)
                adaptors[off++] = (null == mf ? Jdbcs.getAdaptorBy(c.value()) : mf.getAdaptor());
            else
                adaptors[off++] = c.adaptor();
            c = c.next();
        }
        return off;
    }
View Full Code Here

TOP

Related Classes of org.nutz.dao.Chain

Copyright © 2018 www.massapicom. 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.