当前位置: 首页 > news >正文

网站建设赫伟创意星空科技wordpress主题开发网站

网站建设赫伟创意星空科技,wordpress主题开发网站,高端网站设计公司有,网页制作免费的模板背景 因为Mybatis-Plus的saveBatch()方法的批量插入其实也是循环插入,而不是真正的一个SqlSession完成的批插,效率很低。所以我们在写批量插入的时候是自己实现了一个工具类去生成批量插入的sql再去执行,但是会遇到有些文本里有单引号导致插…

背景

因为Mybatis-Plus的saveBatch()方法的批量插入其实也是循环插入,而不是真正的一个SqlSession完成的批插,效率很低。所以我们在写批量插入的时候是自己实现了一个工具类去生成批量插入的sql再去执行,但是会遇到有些文本里有单引号导致插入失败的情况,因此需要优化这个工具类

优化工具类

先贴一下优化后的工具类的代码

/*** 构建批量插入语句 insert 语句** @param clazz        实体类class* @param beanList     要插入的带值的对象集合* @param ignoreFields 需要忽略的属性名集合*/public static <T> String getInsertString(Class<T> clazz, Collection<T> beanList, String... ignoreFields) {StringBuilder insertSql = new StringBuilder();String className = clazz.getSimpleName();insertSql.append("insert into ").append(StrUtil.toUnderlineCase(className)).append("(");Field[] allFields = FieldUtils.getAllFields(clazz);// 构建字段StringBuilder columnSql = new StringBuilder();for (Field field : allFields) {// 构建非static的属性String name = field.getName();if (!isIgnore(ignoreFields, name)) {if (!Modifier.isStatic(field.getModifiers())) {columnSql.append(StrUtil.toUnderlineCase(name)).append(",");}}}insertSql.append(StrUtil.removeSuffix(columnSql.toString(), ",")).append(")").append(" values ");// 循环构建参数for (T t : beanList) {StringBuilder paramsSql = new StringBuilder();paramsSql.append("(");// 根据字段构建参数for (Field field : allFields) {// 构建非static的属性String name = field.getName();if (!isIgnore(ignoreFields, name)) {if (!Modifier.isStatic(field.getModifiers())) {Object fieldValue = ReflectUtil.getFieldValue(t, field.getName());/* 根据格式转换数据 */if (fieldValue instanceof String) {String fieldValueStr = (String) ReflectUtil.getFieldValue(t, name);//防止值里面有'导致插入数据失败if (StringUtils.isNotBlank(fieldValueStr)) {fieldValueStr = fieldValueStr.replaceAll("'", "''");paramsSql.append("'").append(fieldValueStr).append("',");} else {paramsSql.append("null,");}} else if (fieldValue instanceof Enum) {paramsSql.append("'").append(ReflectUtil.getFieldValue(t, name)).append("',");} else if (fieldValue instanceof Date) {Date dateValue = (Date) ReflectUtil.getFieldValue(t, name);paramsSql.append("'").append(DateUtil.format(dateValue, DatePattern.NORM_DATETIME_PATTERN)).append("',");} else if (fieldValue instanceof LocalDateTime) {LocalDateTime dateValue = (LocalDateTime) ReflectUtil.getFieldValue(t, name);paramsSql.append("'").append(DateUtil.format(dateValue, DatePattern.NORM_DATETIME_PATTERN)).append("',");} else {paramsSql.append(ReflectUtil.getFieldValue(t, name)).append(",");}}}}insertSql.append(StrUtil.removeSuffix(paramsSql.toString(), ",")).append(")").append(",");}return StrUtil.removeSuffix(insertSql.toString(), ",");}

处理方案

对于’这种特殊符号,可以直接将一个单引号修改为两个单引号,在执行sql语句的时候,两个单引号会被像转移字符一样处理成一个单引号入库,这样即不会报错,也可以保留文本的原始内容

http://www.yayakq.cn/news/399399/

相关文章:

  • 网站需求报告怎么写网站建站请示
  • 石家庄做网站wsjz网站关键词优化的步骤和过程
  • 成都网站建设cdcidi百度seo排名点击器
  • 南京网站推广排名前十网络营销和直播营销的区别
  • wordpress全站源码制作网站的原因
  • 用什么软件制作网站应用商店网站模板
  • 网站建设总结经验商务科技网站建设
  • 网站建设的关键细节怎么编辑网页
  • 网站建设所需硬件参数网站建设包括哪些技术
  • 江西龙峰建设集团的网站网站推广在哪好
  • 广西网站设计公司做ppt时网站怎么设计
  • 网站支付怎么做虚拟币支付外包服务费税率
  • 免费个人简历模板网站html中文网页模板素材
  • 做网站的前台用什么工具单页销售网站制作制作
  • 去哪个网站可以接单做ps等等最新网站架构
  • 网站如何进行备案不相关的网站做单项链接可以吗
  • 公司在百度做网站做网站 接活
  • 做网站到底要不要备案溧阳城乡建设厅网站
  • sns有哪些著名的网站比较好的装修公司
  • 301 网站 怎么做vr哪家公司做得好
  • 无锡网站seo深圳线上注册公司
  • 网站建设的过程工程公司管理制度
  • 网站建设公司何去何从河南郑州网站制作公司
  • 新闻资讯网站怎么做广东省农业农村厅顾幸伟
  • 建公司网站要多久建设信用卡官网网站
  • 教务处网站建设要求wordpress创建自定义页面模板
  • wp大学wordpress建站流程wordpress主题演示
  • 做网站需要哪些人查询网站是否备案
  • 在哪个网站做推广比较好汝阳县住房与城乡建设局建局网站
  • 贵州省建设厅网站造价工程信息网怎么做盗文网站