项目小结:百度富文本的使用java版和 oracle批量新增的坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目小结:百度富文本的使用java版和 oracle批量新增的坑相关的知识,希望对你有一定的参考价值。


1、【java版】百度富文本的使用 的问题 

百度富文本api:​​http://fex.baidu.com/ueditor/​

UEditor文档: ​​http://fex.baidu.com/ueditor/​

项目小结:百度富文本的使用【java版】和

项目结构:

项目小结:百度富文本的使用【java版】和

这里不提基础的配置 ,只能对比jsp和html配置的不同

 

 

首先,在ueditor.config.js的配置项中,我们可以看到serverUrl 在页面是jsp的项目 可以直接引用java版自带的controller.jsp这个文件

项目小结:百度富文本的使用【java版】和

 

1.1 jsp 和html  前者使用jsp直接写配置的初始化 【比较方便】  后者需要创建java的controller层 写接口 获取的配置文件稍微比较 麻烦 需要根据项目路径来判断  通过request来获取路径只适合前后端不分离的项目  如果分离需要获取项目所在的路径  拼接js相对路径 加上配置位置 config.json 才能开启富文本的上传初始化

controller.jsp

项目小结:百度富文本的使用【java版】和

 

java后端:

项目小结:百度富文本的使用【java版】和

 

从代码的 new ActionEnter的方法里面 可以知道 他是获取项目的原始路径 最终读取的config.json文件

项目小结:百度富文本的使用【java版】和

项目小结:百度富文本的使用【java版】和

 

项目小结:百度富文本的使用【java版】和

项目小结:百度富文本的使用【java版】和

项目小结:百度富文本的使用【java版】和

【这个文件在jsp文件夹下面)

项目小结:百度富文本的使用【java版】和

刚好我这个项目是前后端分离的 

我写的【后面 估计可能会改成目录的相对路径 而不是读取拼接的方式】

项目小结:百度富文本的使用【java版】和

所有我这个项目里面就不能用网上那种的java写法 修改思路有两种

思路1.配置 config.json的根路径  【直接到config.json的上一级目录]

思路2:我这个是项目在同一个目录下 我通过session获取到只是tomcat的相对目录 位置肯定错了 ,而且contextPath也有值.

后面改为通过类目录拼接js目录+"jsp/uditorUpload"  目录明明是jsp下面,为什么要躲写个/ueditorUpload? 如同可以看此他得到的是父目录 所以 获取的xxx/jsp/这个目录。刚好路径吻合,初始化成功。

项目小结:百度富文本的使用【java版】和

 

1.2.这个项目的过滤链比较多 而这个上传的接口需要动态拼接rnd参数 这个就很麻烦 还有回显图片的接口 也需要这个rnd参数 不然就会被拦截 ,这时候我们需要自己设置一个拦截器白名单。这个也需要针对项目来处理。

项目小结:百度富文本的使用【java版】和

项目小结:百度富文本的使用【java版】和

 

2.oracle 的批量新增

 

2.1与mysql写法不同【区别还挺多的】 

而且在虚拟表中最好加上别名 防止两个字段的值是一样的

mysql版本

  

<insert id="batchInsert"  parameterType="java.util.List">
insert into table_name(字段1,字段2) values
<foreach collection="list" item="item" index="index" separator=","> (#item.字段1,jdbcType=VARCHAR, # item.段2,jdbcType=INTEGER)
</foreach>
</insert>

oracle 版本:

<insert id="batchInsert" parameterType="java.util.List">

INSERT INTO HIST_LD_CHANGE(LINE_ID,LINE_NAME)
select a.* from (

<foreach collection="list" close=")" open="(" separator="union all" item="item">
SELECT #item.字段1,#item.字段2 FROM DUAL
</foreach>
) a
</insert>

后面发现会报

项目小结:百度富文本的使用【java版】和

这样的问题

 

此时需要把这个sql改为 临时表要有列的别名 防止出现重复列 导致sql执行失败

<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO HIST_LD_CHANGE(LINE_ID,LINE_NAME)
select a.* from ( <foreach collection="list" close=")" open="(" separator="union all" item="item">
SELECT #item.字段1 as 字段1,#item.字段2 as 字段2 FROM DUAL
</foreach>
) a
</insert>

4.需要使用一个独立的在线文档(不易丢失)

 记录项目常用的部分 后面“复制粘贴”更快 减少“工作量”和规范化代码【可以减少重复代码 和bug统一调改】



以上是关于项目小结:百度富文本的使用java版和 oracle批量新增的坑的主要内容,如果未能解决你的问题,请参考以下文章

百度UMeditor富文本编辑器java使用

百度富文本编辑器ueditor/jsp版的简单使用,可上传图片和附件

百度富文本编辑器UEDITOR

新手如何在Vue项目中优雅的使用UEditor(百度富文本编辑器)

百度UEditor富文本上传图片

使用百度富文本编辑器