2017.05.19
1.在配置mapper的时候碰到的第一个错误是 文档根元素 “mapper” 必须匹配 DOCTYPE 根 “configuration”
正确姿势如下:
<!DOCTYPE mapper //当时这里copy成configuration导致错误
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间,对sql进行分类管理
注意:使用mapper代理开发,命名空间有特殊重要作用-->
<mapper namespace="test">
<select id="findUserById" parameterType="int" resultType="com.cd.mybatisdemo.pojo.User">
select * from user where id=#{id}
</select>
</mapper>
2.必须为元素类型mapper配置属性namespace
<!DOCTYPE mapper //下面的Config 3.0应改为Mapper 3.0
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间,对sql进行分类管理
注意:使用mapper代理开发,命名空间有特殊重要作用-->
<mapper namespace="test">
<select id="findUserById" parameterType="int" resultType="com.cd.mybatisdemo.pojo.User">
select * from user where id=#{id}
</select>
</mapper>
3.由于上次在数据库部分说过新版mysql的ssl问题,这边配置mybatis遇到同样的情况,如果你这么写
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/vzrdb?characterEncoding=UTF-8&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
就会发生报错,说对实体useSSL的引用需要以’;’结束。如果直接把&换成;依然会报错。最后的方案是把&换成&
。此时突然明白这不就是转义了么,xml不支持直接写&所以要转义下。
4.如果你用mybatis执行插入操作,控制台显示正常,数据库却没有变化,请看看是否执行了sqlSession.commit();需要提交事务