发表于: 2020-01-15 23:07:53
1 1112
今天完成的事情:
修改了代码中姓名查询,更改等方面的问题
增删改查测试均为成功~
总算不出幺蛾子了
但有一个接口 最简单的删除 居然出现了问题
@ResponseBody
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public Map deleteId(@PathVariable Integer id){
Map<String, Object> map = new HashMap<>();
try {
ss.deleteId(id);
map.put("code", 200);
map.put("msg", "更改成功");
return map;
} catch (Exception e) {
map.put("code", 201);
map.put("msg", "更改失败");
return map;
}
}
参数也传进去了
错误代码:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'studio where id = 5' at line 1
debug显示我SQL语句有问题, 可我怎么看 也没毛病啊
明天再尝试尝试修改..
整理下代码排错过程中遇到的问题
代码都没啥大问题,主要错误原因很多是漏写 错写:
1.mapper.xml文件 namespace写错
2. update 的SQL语句 后面忘加 , 连接
3. 类名上忘记加 @requestmapping注解 添加value
直接在@controller上添加路径 出错
@Controller("/studio")
public class studioController {
4.接口忘记添加@param注解
4. 关于resultMap的 jdbcType
刚开始我一直没加这个 也不知道这个有什么意义。
后面看了下 确实是有作用的
即: 传入的参数的字段为null对象时无法获取对应的jdbcType类型
需要加入jdbcType . 否则就会报错.
resultMap ,除了基础的属性
还有两个属性 association 和 collection
association和collection都是用来关联另一个表的数据,区别就是用来关联对象的封装的,而collection是用来关联集合封装的,
举个例子,比如通过查询酒店,查出该酒店的城市,是一个城市对应一个酒店,用association。
而查询一个城市的酒店,是一对多的,用collection。
<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性-->
<resultMap id="唯一的标识" type="映射的pojo对象">
<id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" />
<result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/>
<association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
<id column="关联pojo对象对应表的主键字段" jdbcType="字段类型" property="关联pojo对象的主席属性"/>
<result column="任意表的字段" jdbcType="字段类型" property="关联pojo对象的属性"/>
</association>
<!-- 集合中的property须为oftype定义的pojo对象的属性-->
<collection property="pojo的集合属性" ofType="集合中的pojo对象">
<id column="集合中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" />
<result column="可以为任意表的字段" jdbcType="字段类型" property="集合中的pojo对象的属性" />
</collection>
</resultMap>
明天计划的事情:
继续任务 多问问题
死磕不好
评论