Package org.nutz.dao.impl.sql.pojo

Source Code of org.nutz.dao.impl.sql.pojo.UpdateFieldsByChainPItem

package org.nutz.dao.impl.sql.pojo;

import org.nutz.dao.Chain;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.entity.MappingField;
import org.nutz.dao.jdbc.Jdbcs;
import org.nutz.dao.jdbc.ValueAdaptor;
import org.nutz.lang.Lang;

public class UpdateFieldsByChainPItem extends AbstractPItem {

  private Chain chain;

  public UpdateFieldsByChainPItem(Chain chain) {
    this.chain = chain;
  }

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

  public int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off) {
    Chain c = chain.head();
    while (c != null) {
      MappingField mf = en.getField(c.name());
      adaptors[off++] = (null == mf ? Jdbcs.getAdaptorBy(c.value()) : mf.getAdaptor());
      c = c.next();
    }
    return off;
  }

  public int joinParams(Entity<?> en, Object obj, Object[] params, int off) {
    Chain c = chain.head();
    while (c != null) {
      params[off++] = c.value();
      c = c.next();
    }
    return off;
  }

  public int paramCount(Entity<?> en) {
    return chain.size();
  }

}
TOP

Related Classes of org.nutz.dao.impl.sql.pojo.UpdateFieldsByChainPItem

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.