SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax

1、问题描述,修改权限总是修改不了,type值
程序报错提示:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'where id = 25' at line 1

自己的解决方式:
通过查找发现可能是type是sql关键字引发的问题,但是用转意符 `type` 转意后还是报错

下载源码jar包 mybatis 但是调试时断点都打了(进入断点的方式是按住ctrl+方法名),就是没有进入我们的断点源码,加载不到,实际上我们通过Edit Source Lookup Path 加载了jar包的源码 External Archive 然后add

后来担心是mysql版本驱动问题,点击项目build Path -->configure build Path  ---> Maven Dependencies -->  mysql-connector-java-5.1.23.jar

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.23</version>
    </dependency>

修改版本号,保存。 <version>5.1.25</version>,从新下载依赖包。但是还是报错,没有用!!!!

现在说说关于进不了源码的问题:
public int update(CmsUser user) {
        return this.update(UPDATE, user);
    }

点击ctrl+方法名进入的不是我们要的方法,eclipse向导错误,
应该点击this查看具体的实现类。点击this 查看里面的 sqlMapClient,这里面才是我们正确要找的源代码的出处。

对于我们现在的项目为例:
在sql.xml为什么能被成功操作我们数据库呢,以及sql.xml里面那些标签式文档如何被解析的呢。
1、mysql-connector-java-5.1.23.jar 这个jar包是mysql的驱动,是连接我们硬件与程序的驱动。
2、mybatis-3.2.2.jar是解析我们的sql.xml成机器识别的sql语句的一个中间封装程序。

在我们的xml文档中
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"

通过上面我们可以知道我们的xml文档是使用的 http://ibatis.apache.org/dtd/sql-map-2.dtd规范进行编写我们的xml的
具体的规范我们可以去官网 http://ibatis.apache.org/dtd 进行查看。

好了写了这么多,这个问题的最后解决办法是我没遵守文档的规范(明白java是面向对象的,所以即使是xml的标签的使用,其实都是对应着一些封装了的java bean 对象),我不明白这些规则,自己多加了一些对象没有的属性,造成sql解析时语法错误!!
 <update id="update" parameterClass="CmsUser" resultClass="int">
        update <include refid="tableName"/>
            <include refid="updateSet"/>
    </update>
因为update 对应的是没有  resultClass="int" 这个属性的,区别于<select>标签(select是有的),这些具体的东西还是多去官网看看为好。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值