public ENTITY create(ENTITY entity, InsertOption option) { // 如果空值则返回 if (entity == null) { recordLog(" param entity is null!"); return null; } // 如果需要DAO层代理生成新ID if (sequenceName != null) { entity.setId(getNextId()); } // 判断是否为自动设置的ID KEY key = entity.getId(); boolean autoGeneratedKey = (Number.class.isAssignableFrom(orMapping.getKeyClass()) && (key == null || (Long.parseLong(key.toString()) == 0))); // 获取insert语句 @SuppressWarnings("unchecked") Query query = queryGenerater.getCreateQuery(autoGeneratedKey, false, option, entity); final String sql = query.getSql(); final List<Object> params = query.getParams(); // 如果非自动生成key则返回 if (!autoGeneratedKey) { int rowCount = executeSQL(sql, params); return rowCount == 1 ? entity : null; // 如果自动生成key,生成KeyHolder } else { return createAndFetchKey(entity, sql, params); } }