工作笔记(一)关于mybatis动态sql,MultipartFile,jsp页面404
2018-02-07 00:00
375 查看
摘要: 工作中碰到的具体问题
第一、关于mybatis动态sql逗号处理的方法
UPDATE
b_scene_info
<trim prefix="set" suffixOverrides=",">
<if test="sceneName!=null">
scene_name=#{sceneName,jdbcType=VARCHAR},
</if>
<if test="sceneState!=null">
scene_state=#{sceneState,jdbcType=VARCHAR},
</if>
<if test="sceneType!=null">
scene_type=#{sceneType,jdbcType=VARCHAR},
</if>
<if test="stateFlag!=null">
state_flag=#{stateFlag,jdbcType=VARCHAR},
</if>
<if test="seedInterfaceTable!=null">
seed_interface_table=#{seedInterfaceTable,jdbcType=VARCHAR},
</if>
<if test="seedDateCycle!=null">
seed_date_cycle=#{seedDateCycle,jdbcType=VARCHAR},
</if>
<if test="candInterfaceTable!=null">
cand_interface_table=#{candInterfaceTable,jdbcType=VARCHAR},
</if>
<if test="candDateCycle!=null">
cand_date_cycle=#{candDateCycle,jdbcType=VARCHAR},
</if>
<if test="createDate!=null">
create_date=#{createDate,jdbcType=VARCHAR},
</if>
<if test="updateDate!=null">
update_date=#{updateDate,jdbcType=VARCHAR},
</if>
</trim>
WHERE
s_Id=#{sId,jdbcType=BIGINT}
遇到的坑:
1、<trim prefix="set" suffixOverrides=",">代替了SET关键词
2、最后一个值后面也要加上逗号(这个纯属自己失误)
第二、关于springMVC一种404错误的原因
JSP 页面form表单通过name传过来的值在后台用实体接收只能用String 与 int,其他的数据类型如Date使用代码转换(有时候想不起来)
第三、关于form传送file类型的值 后台使用 MultipartFile接收的方法
前台代码:
<form action="<%=request.getContextPath() %>/taskInfo/taskSave.do" id="taskSave" enctype="multipart/form-data" method="post">
<input type="file" class="file" name="file" id="seedFile">
<input type="file" class="file" name="file" id="candFile">
</form>
后台代码:
public String taskSave(HttpServletRequest request,TaskInfo taskInfo,@RequestParam MultipartFile[] file) {
for (int i = 0; i < file.length; i++) {
String pathType = i==0 ? "seedFilePath" : "candFilePath" ;
String fileType = i==0 ? "hc_seed_" : "hc_cand_";
//上传地址配置
String path = contPath + File.separator + "datafiles" + File.separator + "file" + taskInfo.gettId() + propertyUtil.getProperty(pathType).replace("/", File.separator);
String fileName= fileType +taskInfo.gettId()+".txt";
targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
//文件上传
file[i].transferTo(targetFile);
if(i==0){
taskInfo.setSeedPath(path + fileName);
taskInfo.setSeedNum(propertyUtil.readFileLine(targetFile));
}else{
taskInfo.setCandPath(path + fileName);
taskInfo.setCandNum(propertyUtil.readFileLine(targetFile));
}
}
}
遇到的坑:
1、enctype="multipart/form-data" ,form这个属性必须有
第一、关于mybatis动态sql逗号处理的方法
UPDATE
b_scene_info
<trim prefix="set" suffixOverrides=",">
<if test="sceneName!=null">
scene_name=#{sceneName,jdbcType=VARCHAR},
</if>
<if test="sceneState!=null">
scene_state=#{sceneState,jdbcType=VARCHAR},
</if>
<if test="sceneType!=null">
scene_type=#{sceneType,jdbcType=VARCHAR},
</if>
<if test="stateFlag!=null">
state_flag=#{stateFlag,jdbcType=VARCHAR},
</if>
<if test="seedInterfaceTable!=null">
seed_interface_table=#{seedInterfaceTable,jdbcType=VARCHAR},
</if>
<if test="seedDateCycle!=null">
seed_date_cycle=#{seedDateCycle,jdbcType=VARCHAR},
</if>
<if test="candInterfaceTable!=null">
cand_interface_table=#{candInterfaceTable,jdbcType=VARCHAR},
</if>
<if test="candDateCycle!=null">
cand_date_cycle=#{candDateCycle,jdbcType=VARCHAR},
</if>
<if test="createDate!=null">
create_date=#{createDate,jdbcType=VARCHAR},
</if>
<if test="updateDate!=null">
update_date=#{updateDate,jdbcType=VARCHAR},
</if>
</trim>
WHERE
s_Id=#{sId,jdbcType=BIGINT}
遇到的坑:
1、<trim prefix="set" suffixOverrides=",">代替了SET关键词
2、最后一个值后面也要加上逗号(这个纯属自己失误)
第二、关于springMVC一种404错误的原因
JSP 页面form表单通过name传过来的值在后台用实体接收只能用String 与 int,其他的数据类型如Date使用代码转换(有时候想不起来)
第三、关于form传送file类型的值 后台使用 MultipartFile接收的方法
前台代码:
<form action="<%=request.getContextPath() %>/taskInfo/taskSave.do" id="taskSave" enctype="multipart/form-data" method="post">
<input type="file" class="file" name="file" id="seedFile">
<input type="file" class="file" name="file" id="candFile">
</form>
后台代码:
public String taskSave(HttpServletRequest request,TaskInfo taskInfo,@RequestParam MultipartFile[] file) {
for (int i = 0; i < file.length; i++) {
String pathType = i==0 ? "seedFilePath" : "candFilePath" ;
String fileType = i==0 ? "hc_seed_" : "hc_cand_";
//上传地址配置
String path = contPath + File.separator + "datafiles" + File.separator + "file" + taskInfo.gettId() + propertyUtil.getProperty(pathType).replace("/", File.separator);
String fileName= fileType +taskInfo.gettId()+".txt";
targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
//文件上传
file[i].transferTo(targetFile);
if(i==0){
taskInfo.setSeedPath(path + fileName);
taskInfo.setSeedNum(propertyUtil.readFileLine(targetFile));
}else{
taskInfo.setCandPath(path + fileName);
taskInfo.setCandNum(propertyUtil.readFileLine(targetFile));
}
}
}
遇到的坑:
1、enctype="multipart/form-data" ,form这个属性必须有
相关文章推荐
- 关于mybatis插件tk.mybatis生成的动态sql语句字段不加``的问题
- 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别
- 关于ajax 返回的json数据动态展现在jsp页面的问题 20170525
- mybatis动态sql关于参数报错
- mybatis中关于使用注解来完成动态SQL拼接的解决办法
- 关于mybatis 动态 sql 的一些陷阱:防止批量update,delete,select...
- 关于在jsp页面显示当前时间及动态显示
- 【MyBatis框架】mapper配置文件-关于动态sql
- 关于在maven项目下,从一个jsp页面通过重定向跳转到另一个jsp页面时出现404的错误的解决方法
- 【MyBatis框架】mapper配置文件-关于动态sql
- 【MyBatis框架】mapper配置文件-关于动态sql
- 只需记住一条:关于JSP页面中的静态包含和动态包含
- mybatis动态sql解决关于There is no getter for property named 'certitype'错误问题
- mybatis 动态sql里面关于时间区间查询的表示方式
- 关于mybatis动态SQL语句的写法
- Mybatis:关于动态生成sql语句的一些问题
- 【MyBatis框架】mapper配置文件-关于动态sql
- 关于JSP中动态包含请求无法显示页面的问题 post请求页面中包含get请求
- Mybatis动态SQL-bind标签
- MyBatis动态sql中模糊查询