Ejemplo n.º 1
0
  @Override
  public Object save(Object object) throws Exception {

    StringBuilder sql = new StringBuilder();
    EntityInfo entityInfo = ClassUtils.getEntityInfoByObject(object);

    sql.append("INSERT INTO ");
    sql.append(entityInfo.getTableName());
    sql.append("(");

    Map<String, Object> valueMap = ClassUtils.describe(object);
    List<String> columns = new ArrayList<String>();
    List<Object> values = new ArrayList<Object>();
    Map<String, String> ptcMap = ClassUtils.propToColumnMap.get(entityInfo.getClazzName());

    if (entityInfo.getStrategy().equals(GenerationType.IDENTITY)) {
      valueMap.remove(entityInfo.getPkName());
    }

    for (Map.Entry<String, Object> entry : valueMap.entrySet()) {
      columns.add(ptcMap.get(entry.getKey()));
      values.add(entry.getValue());
    }
    sql.append(StringUtils.join(columns, ","));
    sql.append(") VALUES(");
    String[] params = new String[values.size()];
    Arrays.fill(params, "?");
    sql.append(StringUtils.join(params, ","));
    sql.append(")");
    if (entityInfo.getStrategy().equals(GenerationType.IDENTITY)) {
      Long id = addReutrnId(sql.toString(), values);
      if (id != null) {
        ClassUtils.setFieldValue(object, entityInfo.getPkName(), id);
      }
    } else {
      add(sql.toString(), values);
    }
    return object;
  }
Ejemplo n.º 2
0
  public SqlHelper getUpdateSql(Map<String, Object> object, EntityInfo entityInfo) {

    Object id = object.get(entityInfo.getPkName());

    if (id == null) {
      throw new DaoException("缺少主键id参数");
    }

    object.remove(entityInfo.getPkName());

    SqlHelper sqlHelper = new SqlHelper("UPDATE ");
    sqlHelper.append(entityInfo.getTableName()).append(" SET ");
    //        List<String> columns = new ArrayList<String>();
    List<Object> values = new ArrayList<Object>();
    Map<String, String> ptcMap = ClassUtils.propToColumnMap.get(entityInfo.getClazzName());
    StringBuilder columnSql = new StringBuilder();
    for (Map.Entry<String, Object> entry : object.entrySet()) {
      if (entry.getValue() != null) {
        values.add(entry.getValue());
        if (!"".equals(columnSql.toString())) {
          columnSql.append(",");
        }
        columnSql.append(ptcMap.get(entry.getKey()));
        columnSql.append("=");
        columnSql.append("?");
      }
    }
    if (values.size() < 1) {
      throw new DaoException("没有要更新的参数");
    }

    sqlHelper.append(columnSql.toString());
    sqlHelper.append(" WHERE ");
    sqlHelper.append(entityInfo.getPkClumnName());
    sqlHelper.append("=?");
    return sqlHelper;
  }