ORACLE使用Mybatis-plus批量插入
在Oracle数据库中使用MyBatis-Plus进行批量插入时,可以使用saveBatch
方法。以下是一个示例代码:
首先,确保你的MyBatis-Plus配置文件中已经配置了Oracle的驱动和数据源。
然后,在你的Mapper接口中定义插入方法:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface YourEntityMapper extends BaseMapper<YourEntity> {
// 这里可以不用显式写任何代码,BaseMapper已经提供了saveBatch方法
}
实体类YourEntity
对应你的数据库表,并使用MyBatis-Plus的@TableName
注解指定表名。
服务层调用批量插入:
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
public class YourEntityService extends ServiceImpl<YourEntityMapper, YourEntity> {
public boolean saveBatchEntities(List<YourEntity> entityList) {
// 第二个参数是批次大小,可以根据实际情况调整
return this.saveBatch(entityList, 1000);
}
}
使用服务层方法进行批量插入:
import java.util.ArrayList;
import java.util.List;
public class YourServiceUsage {
public static void main(String[] args) {
YourEntityService yourEntityService = new YourEntityService();
List<YourEntity> entityList = new ArrayList<>();
// 填充数据到entityList
boolean result = yourEntityService.saveBatchEntities(entityList);
if (result) {
System.out.println("批量插入成功");
} else {
System.out.println("批量插入失败");
}
}
}
确保在插入之前,entityList
包含了你想要插入的所有实体对象。saveBatch
方法会执行批量插入操作,并返回操作是否成功。
注意:Oracle数据库在批量操作时可能会遇到ORA-01741: 无效的数字
错误,这通常是因为Oracle与MyBatis-Plus中的参数处理机制不完全一致导致的。如果遇到这个问题,可能需要检查实体类字段映射和Oracle数据库列的类型是否一致,或者在MyBatis-Plus的配置中调整参数处理策略。
评论已关闭