private String buildSQL(String sql, Class<?> entityType, List<String> columns, String[] split) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("UPDATE ") .append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor())).append(" SET "); columns.forEach(c -> sqlBuilder.append(c).append(" = ?, ")); sqlBuilder.setLength(sqlBuilder.length() - 2); if (split.length == 2) { sqlBuilder.append(sql.contains(" WHERE ") ? " WHERE " : " where ").append(split[1]); } return sqlBuilder.toString(); }
private String buildSql(Class<?> entityType, List<String> columns, int batchSize, String additionalStatement) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("INSERT INTO ") .append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor())); sqlBuilder.append(" ("); columns.forEach(c -> sqlBuilder.append(c).append(", ")); sqlBuilder.setLength(sqlBuilder.length() - 2); sqlBuilder.append(") VALUES "); for (int i = 0; i < batchSize; i++) { sqlBuilder.append("("); columns.forEach(c -> sqlBuilder.append("?, ")); sqlBuilder.setLength(sqlBuilder.length() - 2); sqlBuilder.append("), "); } sqlBuilder.setLength(sqlBuilder.length() - 2); sqlBuilder.append(additionalStatement); return sqlBuilder.toString(); } }
@Override public void replace(Connection connection, MetaObject metaObject, MappedStatement mappedStatement, BoundSql boundSql) { String sql = boundSql.getSql(); if (sql.contains("#t")) { Class<?> entityType = MapperUtils.getEntityTypeFromMapper (mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); metaObject.setValue("delegate.boundSql.sql", sql.replace("#t", EntityUtils.getTableName(entityType, configuration.getNameAdaptor()))); } }
@Override public void replace(Connection connection, MetaObject metaObject, MappedStatement mappedStatement, BoundSql boundSql) { String tableName = EntityUtils.getTableName(MapperUtils.getEntityTypeFromMapper (mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))), configuration.getNameAdaptor()); metaObject.setValue("delegate.boundSql.sql", (mappedStatement.getId().endsWith("countAll") ? "SELECT COUNT(*) FROM " : "SELECT * FROM ") + tableName); }
@Override @SuppressWarnings("unchecked") public void replace(Connection connection, MetaObject metaObject, MappedStatement mappedStatement, BoundSql boundSql) { Class<?> entityType = MapperUtils.getEntityTypeFromMapper (mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("DELETE FROM ").append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor())); Map<String, Object> parameterMap = (Map<String, Object>) boundSql.getParameterObject(); Object[] ids = (Object[]) parameterMap.get("param1"); parameterMap.clear(); if (ids.length > 0) { String idProperty = EntityUtils.getIdProperty(entityType); String idColumn = SqlUtils.normalizeColumn(idProperty, (boolean) metaObject.getValue("delegate.configuration.mapUnderscoreToCamelCase")); sqlBuilder.append(" WHERE ").append(idColumn).append(" IN ("); Arrays.stream(ids).forEach(c -> sqlBuilder.append("?, ")); sqlBuilder.setLength(sqlBuilder.length() - 2); sqlBuilder.append(')'); org.apache.ibatis.session.Configuration configuration = (org.apache.ibatis.session.Configuration) metaObject.getValue("delegate.configuration"); List<ParameterMapping> parameterMappings = new ArrayList<>(ids.length); for (int i = 0; i < ids.length; i++) { parameterMap.put(idProperty + i, ids[i]); parameterMappings.add(new ParameterMapping.Builder(configuration, idProperty + i, Object.class).build()); } metaObject.setValue("delegate.boundSql.parameterMappings", parameterMappings); metaObject.setValue("delegate.boundSql.sql", sqlBuilder.toString()); } }
(mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("DELETE FROM ").append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor()));
(mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("INSERT INTO ").append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor()));
(mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("UPDATE ").append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor()));
(mappedStatement.getId().substring(0, mappedStatement.getId().lastIndexOf('.'))); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("SELECT * FROM ").append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor()));
StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append(mappedStatement.getId().endsWith("count") ? "SELECT COUNT(*) FROM " : "SELECT * FROM ") .append(EntityUtils.getTableName(entityType, configuration.getNameAdaptor()));