美文网首页
sql server批量导入

sql server批量导入

作者: ShrJanLan | 来源:发表于2020-05-10 19:11 被阅读0次

com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。
SQL Server 的最大容量规范
1.批量导入

List<Stores> list = new ArrayList<>();
//SqlServer 对语句的条数和参数的数量都有限制,分别是 1000 和 2100。
if(list.size()>99){
  List<Stores> lists = new ArrayList<>();
  for (int i=0;i<list.size();i++){
    lists.add(list.get(i));
    if(i!=0 && i%99==0 || i==list.size()-1){//每100条批量导入
      //批量导入
      storesMapper.bulkImport(lists);
      lists = new ArrayList<>();
    }
  }
}else{
  //批量导入
  storesMapper.bulkImport(list);
}

2.对应的xml(collection接收的集合,item循环的变量名称,separator分隔符)

<!-- 批量导入 -->
<insert id="bulkImport" parameterType="java.util.List">
  INSERT INTO stores(name,address,create_time,update_time,is_delete)
  VALUES
  <foreach collection="list" item="s" separator=",">
    (#{s.name,jdbcType=VARCHAR}
    ,#{s.address,jdbcType=VARCHAR}
    ,#{s.createTime,jdbcType=TIMESTAMP}
    ,#{s.updateTime,jdbcType=TIMESTAMP}
    ,#{s.isDelete,jdbcType=INTEGER})
  </foreach>
</insert>

3.Mapper映射

public interface StoresMapper extends BaseMapper<Stores> {

  //批量导入
  Integer bulkImport(List<Stores> list) throws Exception;

}

读取excel

相关文章

网友评论

      本文标题:sql server批量导入

      本文链接:https://www.haomeiwen.com/subject/szxsnhtx.html