入门文章:http://c.biancheng.net/view/4368.html
问题1:Mybatis(单独)测试增删改接口报错could not retrieve transation read-only status server
修改mysql版本之后好了
问题2:Spring与MyBatis整合,报错Could not get JDBC Connection; nested exception
解决思路:
- 配置问题:db.properties配置文件与applicationContext-dao.xml配置文件配置
- mysql版本问题【最终解决问题】
比如我的mysql版本匹配的是:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
问题3:Spring与MyBatis整合,报错Invalid bound statement (not found)
解决思路:
- applicationContext-dao.xml配置,与mappers下的xml文件,以及dao下对应的接口方法名等匹配问题。
参考文章:https://www.jianshu.com/p/800fe918cc7a
问题4:关于几种数据池dbcp,c3p0与druid,上面入门参考文章中用的是druid,看了下几种连接池的优缺点
参考文章:https://www.dazhuanlan.com/2019/08/24/5d6118b522d24/
问题5:执行用例testQueryUserAll,userName打印为null
文章里有对应的解决思路。
问题6:update时间并非当前系统时间
解决思路:时区问题、系统时间问题角度
问题7:typeHandlers类型处理器没有试过
问题8:plugins(插件)拦截器这个例子没有成功
问题9:resultMap使用,一对多查询出现报错NoSuchMethodException ()
解决思路:缺少无参的构造方法,被覆盖
问题10:将spring与Mybatis整合后,发现日志打印细节没有了,有警告
知识点1:接口的动态代理
- Mapper的namespace必须和Mapper接口的全路径一致;
- Mapper接口的方法名必须和sql定义的id一致
- Mapper接口中方法的输入参数类型必须和sql定义的parameterType一致(不一定)
- Mapper接口中方法的输出参数类型必须和SQL定义的resultType一致
知识点2:applicationContext-dao.xml结合mybatis-config.xml配置,更加灵活。
比如:在mybatis-config.xml定义独有的规则,在applicationContext-dao.xml引用
知识点3:动态SQL
if、when、foreach、trim、choose、where、set
多个参数的sql
知识点4:一级缓存、二级缓存
知识点5:高级查询
idea 添加webapp目录:https://www.csdn.net/gather_2b/MtjaMg2sMzA1Mi1ibG9n.html