Package org.nutz.dao.impl.sql

Source Code of org.nutz.dao.impl.sql.NutPojoMaker

package org.nutz.dao.impl.sql;

import org.nutz.dao.entity.Entity;
import org.nutz.dao.jdbc.JdbcExpert;
import org.nutz.dao.sql.Pojo;
import org.nutz.dao.sql.PojoMaker;
import org.nutz.dao.sql.SqlType;
import org.nutz.dao.util.Pojos;

public class NutPojoMaker implements PojoMaker {

  private JdbcExpert expert;

  public NutPojoMaker(JdbcExpert expert) {
    this.expert = expert;
  }

  public Pojo makePojo(SqlType type) {
    Pojo pojo = expert.createPojo(type);

    return pojo;
  }

  public Pojo makeInsert(Entity<?> en) {
    Pojo pojo = Pojos.pojo(expert, en, SqlType.INSERT);
    pojo.setEntity(en);
    pojo.append(Pojos.Items.entityTableName());
    pojo.append(Pojos.Items.insertFields());
    pojo.append(Pojos.Items.insertValues());
    return pojo;
  }

  public Pojo makeUpdate(Entity<?> en, Object refer) {
    Pojo pojo = Pojos.pojo(expert, en, SqlType.UPDATE);
    pojo.setEntity(en);
    pojo.append(Pojos.Items.entityTableName());
    pojo.append(Pojos.Items.updateFields(refer));
    return pojo;
  }

  public Pojo makeQuery(Entity<?> en) {
    Pojo pojo = Pojos.pojo(expert, en, SqlType.SELECT);
    pojo.setEntity(en);
    pojo.append(Pojos.Items.queryEntityFields());
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.entityViewName());
    return pojo;
  }

  public Pojo makeQuery(String tableName) {
    String[] ss = tableName.split(":");
    // String idFieldName = ss.length > 1 ? ss[1] : "*";//按id字段来统计,比较快
    Pojo pojo = makePojo(SqlType.SELECT);
    // pojo.append(Pojos.Items.wrap(idFieldName));//与org.nutz.dao.test.normal.QueryTest.query_records_pager()冲突
    pojo.append(Pojos.Items.wrap("*"));
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.wrap(ss[0]));
    return pojo;
  }

  public Pojo makeDelete(Entity<?> en) {
    Pojo pojo = Pojos.pojo(expert, en, SqlType.DELETE);
    pojo.setEntity(en);
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.entityTableName());
    return pojo;
  }

  public Pojo makeDelete(String tableName) {
    Pojo pojo = makePojo(SqlType.DELETE);
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.wrap(tableName));
    return pojo;
  }

  public Pojo makeFunc(String tableName, String funcName, String colName) {
    Pojo pojo = makePojo(SqlType.SELECT);
    pojo.append(Pojos.Items.wrapf("%s(%s) FROM %s", funcName, colName, tableName));
    return pojo;
  }

}
TOP

Related Classes of org.nutz.dao.impl.sql.NutPojoMaker

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.