mybatis错误收集

本文介绍了在使用MyBatis框架过程中常见的配置错误,包括mapper文件的DOCTYPE声明错误、未配置namespace属性、解决新版MySQL的SSL问题以及执行插入操作时忘记提交事务等问题。

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的引用需要以’;’结束。如果直接把&换成;依然会报错。最后的方案是把&换成&amp;。此时突然明白这不就是转义了么,xml不支持直接写&所以要转义下。

4.如果你用mybatis执行插入操作,控制台显示正常,数据库却没有变化,请看看是否执行了sqlSession.commit();需要提交事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值