日常学习碎碎念3
坑一:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.edu.sdut.mapper.UserMapper.queryUserById
解决方法:在pom.xml文件中增加以下配置(这是开发工具的坑)
pom文件中一定要xml的配置方式:
1.idea开发工具/src/main/java目录中只会打包*.class文件。不会帮我们打包*.xml,.properties
2.**/.xml: /前边的两个**代表的是你这个文件的目录包含子目录(包和子包),*.xml所有的xml文件。
<!--注意include部分-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
坑2:
mybatis推荐我们把映射表的xml文件和mapper接口放在一个包中
xml的名称必须和接口名一致,否则产生一系列问题
eg:UserMapper 和UserMaper.xml
坑3:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace属性名字不能随便乱写,必须写mapper接口的完全限定名-->
<mapper namespace="cn.edu.sdut.mapper.UserMapper">
<!--前方有坑
id属性值必须写UserMapper接口中的方法名
返回resultType类型的数据mybatis已经有实体包了,直接写类名就行了
不用写完全限定名
-->
<select id="queryUserById" parameterType="int" resultType="Tabuser">
select * from tabuser where userid=#{userid}
</select>
</mapper>
坑4:(粗心坑)
原因:返回的实体类里面没写东西,即Tabuser中的构造方法,geter seter方法啥的没有写,呜呜呜