java开发第二篇 那些坑儿
Published by Shangyu Liu,
1、当遇到各种想不明白的bug时,最先的解决办法是去idea的file->project structures->artifacts->output root的WEB-INF中的lib看一看是不是有什么包没有引入,诸如tomcat更改了listener之后启动不了(spring没有添加到lib中),@Responsebody无效(jackson没有添加到lib中)。
与mybatis配置文件相关的错误:
2、9月5号遇到的坑,完整的错误是这样的:我把mapper中的代码写错了(很二的错误),单元测试不通过(哪怕是与新写的接口无关的测试),一直提示某些bean注入不了,只有注释掉这个mapper才行,只要mapper错了,与之关联的dao也会错,之后的service,serviceImp都会错,单元测试只要autowired了相关内容就都会错。
3、另有一个不太二的mapper中的错是这样的,date类型,数据库里的datetime对应到mapper中的jdbcType="TIMESTAMP",对应到java中为java.sql.Timestamp中定义的Timestamp, 而date对应的为另外的类型(大概就是date,遇到再说)。
4、类似3,感谢之前做的笔记,很快联想到了错误处在这里,sql中的DECIMAL就对应mapper中jdbcType的DECIMAL,而不是DOUBLE之类的鬼
5、超二错误,浏览器报错:Invalid bound statement (not found),在spring-mybatis.xml中没有绑定mapper.xml文件
6、sql中的int在jdbcType不能写INT类型,要写INTEGER
7、当mapper、dao、service都感觉没问题的时候可以去查看一下model定义的是否与mapper的数据类型一致
8、注意,id非int型则不能设置为自增,不设置为自增则useGeneratedKeys无效
与postman相关的错误:
java接受一个值,值是一个json,用x-www-form-urlencoded格式,key为键名,value为json