![JAR search and dependency download from the Maven repository](/logo.png)
org.zodiac.mybatisplus.injector.methods.InsertBatch Maven / Gradle / Ivy
package org.zodiac.mybatisplus.injector.methods;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import java.util.List;
import org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
import org.apache.ibatis.executor.keygen.KeyGenerator;
import org.apache.ibatis.executor.keygen.NoKeyGenerator;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;
import org.zodiac.mybatisplus.injector.MyBatisPlusMethod;
public class InsertBatch extends AbstractMethod {
private static final long serialVersionUID = 4224687861411381402L;
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo table) {
KeyGenerator keyGenerator = new NoKeyGenerator();
StringBuilder fieldBuilder = new StringBuilder();
StringBuilder placeholderBuilder = new StringBuilder();
MyBatisPlusMethod sqlMethod = MyBatisPlusMethod.INSERT_BATCH_MYSQL;
placeholderBuilder.append("\n\n");
fieldBuilder.append("\n\n");
String keyProperty = null;
String keyColumn = null;
if (table.getIdType() == IdType.AUTO) {
/* 自增主键。 */
keyGenerator = new Jdbc3KeyGenerator();
keyProperty = table.getKeyProperty();
keyColumn = table.getKeyColumn();
} else {
/* 用户输入自定义ID。 */
fieldBuilder.append(table.getKeyColumn()).append(",");
placeholderBuilder.append("#{item.").append(table.getKeyProperty()).append("},");
}
List fieldList = table.getFieldList();
for (TableFieldInfo fieldInfo : fieldList) {
fieldBuilder.append(fieldInfo.getColumn()).append(",");
placeholderBuilder.append("#{item.").append(fieldInfo.getEl()).append("},");
}
fieldBuilder.append("\n ");
placeholderBuilder.append("\n ");
String sql = String.format(sqlMethod.getSql(), table.getTableName(), fieldBuilder.toString(),
placeholderBuilder.toString());
SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
return this.addInsertMappedStatement(mapperClass, modelClass, sqlMethod.getMethod(), sqlSource, keyGenerator,
keyProperty, keyColumn);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy