首先新建两个表,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
靠,果真是这样,那么我就没有问题了呀
 
 执行前表的个数
 
 执行结果










