1.Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for zhenshuai.sql1
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:888)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:721)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:714)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
... 3 more
从已经映射的sql语句中,找不到 zhenshuai.sql1.
mybatis如何找到你编写的sql语句?
sql语句在xml文件中编写,mybatis怎么知道你的哪个文件中,写了sql?
mybatis有一个全局的配置文件 mybatis.xml,在配置中,可以使用 <mappers>标签来告诉Mybatis,sql文件在哪里,
之后它会自动去找指定id的sql!
2.Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource.
Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver
没加Mysql驱动
3.org.apache.ibatis.binding.BindingException(绑定异常):
Type interface com.atguigu.mybatisdemo.mappers.EmployeeMapper is not known to the Mapper(接口和 sql的xml文件互相不认识)
只要看到BindingException,指 XXXXMapper中的某个方法和 对应的 xxxMappper.xml中的sql没有绑定上!
编写的sql的mapper文件,一定别忘记在mybatis的全局配置中注册!
4.执行测试新增时,执行一次,新增两个员工
原因: maven的设置中 勾选了 将 run/build的 actions交给maven的选项
导致 点击运行按钮时,先调用maven中的run
maven run: mvn test(运行test包下的测试案例 第一次运行) -----> mvn compile ---->mvn run(第二次运行)
解决: 不要勾选 将 run/build的 actions交给maven的选项
5.org.apache.ibatis.binding.BindingException:
Type interface com.atguigu.mybatisdemo.mappers.EmployeeMapper is not known to the MapperRegistry(负责管理Mapper中对应的mapper).
Mapper的全类名和 mapper中的namespace对不上
6.org.apache.ibatis.binding.BindingException:
Invalid bound statement (not found): com.atguigu.mybatisdemo.mappers.EmployeeMapper.getEmployeeById
调用com.atguigu.mybatisdemo.mappers.EmployeeMapper.getEmployeeById时,找不到mapper中 和 getEmployeeById 同名id的sql