记录mybatis 关于 # 和$ 的区别

首先新建两个表,test 表 是用来测试 $ 符号的,
sharptest 是用来测试 # 符号的,相关的DO 以及 mapper我就不截图了,重点还是在mybatis 中的# 和$ 的区分,
在这里插入图片描述

在这里插入图片描述

test Mapper:

在这里插入图片描述

SharpTestMapper:

在这里插入图片描述

测试文件的书写:

在这里插入图片描述

测试结果:

在这里插入图片描述
这是怎么回事呢,原来是因为 name 是 mysql 的关键字,需要在mybatis 里面加上 强调符号,开搞开搞

testmapper

在这里插入图片描述

sharptestMapper

在这里插入图片描述

第二次测试

在这里插入图片描述
还是报错,这又是为啥,那我整个新表测试一下这个sql语句得了,开搞
在这里插入图片描述
在这里插入图片描述
奇了怪了,这为啥可以了呢,思来想去试试开mybatis 的debug 模式
嗷嗷,是前面的select 后面跟着的name没有加着重号,那我知道了,我再加上试试
(以后再也不用name做字段名字了呜呜呜)


还是不行啊,这是为啥,我把sharptest 的sql 语句放到mysql 中进行测试
发现了一个神奇的现象
在这里插入图片描述
嗷,我靠,我怎么少了个逗号,…我真的不是水军五五

几经测试发现不行,在mysql里面可以同时执行,mybatis 就不行,上网查了一下,发现mybatis会有缓存的概念,那好叭,我把这个缓存取消了,为了就是模拟我们这种不需要缓存的业务!
取消缓存需要在select语句中添加flushCache=“true”;

<select flushCache="true"></select>

看来mybatis 也有很多我需要学的东西呀

我不信了,我改一下sql得了,改成字符串拼接,然后有个sharp符号进行注释
在这里插入图片描述
在这里插入图片描述
想了半天,会不会是mybatis 对于xml 文件中的字段的进行拦截,尝试更改为update方法来进行测试,就直接更新name 为输入string
的字段的id为8
sharptest
在这里插入图片描述
嗷嗷好像是mybatis 的原因
网上说要在配置文件当中加一条语句:
怎么开启呢?在拼装mysql链接的url时,为其加上allowMultiQueries参数,设置为true,如下:

jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

靠,果真是这样,那么我就没有问题了呀
在这里插入图片描述
执行前表的个数
在这里插入图片描述
执行结果在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值