@Autowired
private TestMapper testMapper;
@Override
public void run(String... args) throws Exception {
Test3PO test3PO = new Test3PO();
test3PO.setId(0);
test3PO.setDate(new Date());
this.testMapper.judge(test3PO);
}
}
xml 中的语句
SELECT id, date FROM test1 where 1=1 order BY id DESC
#### 2.结果
输出的 sql 结果如下,也就是 query.id!=''为`false`了,是不是比较震惊,一个 Integer 类型的 0 和字符串相互比较,结果居然是`true`
SELECT id, date
FROM test1
where 1=1
### 二.源码探究
#### 1.ASTNotEq
因为比较的是!=方法,所以在 ASTNotEq 的源码的比较地方打了断点,关键点在于 OgnlOps.equal(v1, v2)方法
![image-20240104112736297](https://img-blog.csdnimg.cn/img_convert/3ea25a42be2b78f94023513df9b4490f.png)
#### 2.isEqual 方法
断点跟进 compareWithConversion 方法
![image-20240104112911654](https://img-blog.csdnimg.cn/img_convert/3c75e5ea74b4a0b1726ee31f0f6ecb2e.png)
#### 3.compareWithConversion
![image-20240104112941621](https://img-blog.csdnimg.cn/img_convert/190fa8caac8ebcc9e0d8d0a678d31565.png)
#### 4.doubleValue
看到这里就真相大白了,mybatis 的源码在判断的时候,先判断字符串的长度,再根据字符串的长度给出一个 Double 类型的值,因为字符串为空字符串,长度为 0,所以返回的值为 0.0,与参数 0 的返回值 0.0 一致,`真的狗`
![image-20240104113005638](https://img-blog.csdnimg.cn/img_convert/fb0a2019c2cebb48e468f87d039b8240.png)
#### 5.判断中的 in 使用
SELECT #{query.id}
* `<select>` 标签:表示一个查询语句。在这里,`id` 属性是该查询语句的唯一标识符,`resultType` 属性指定了查询结果的类型为整数。
* `<if>` 标签:这是一个动态 SQL 元素,用于在运行时根据条件动态地生成 SQL 语句的一部分。在这里,`test` 属性表示条件判断,如果 `query.id` 的值在 (1, 2, 3, 4) 这个集合中,就会执行 `<if>` 标签内的 SQL 语句。
* SQL 语句:在 `<if>` 标签内部,`SELECT #{query.id}` 是实际的 SQL 查询语句。`#{query.id}` 是 MyBatis 中的参数占位符,它会被实际的参数值替代。这里的查询语句是动态生成的,根据条件是否成立而变化。
>
> 觉得有用的话点个赞 `👍🏻` 呗。
> ❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
>
>
> 💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
>
>
> 🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
>
>
> ![img](https://img-blog.csdnimg.cn/img_convert/a08571f736dc04b5bef51cd09e8e3a0a.gif#pic_center)
>
>
>
**ES6**
* 列举常用的ES6特性:
* 箭头函数需要注意哪些地方?
* let、const、var
* 拓展:var方式定义的变量有什么样的bug?
* Set数据结构
* 拓展:数组去重的方法
* 箭头函数this的指向。
* 手写ES6 class继承。
![](https://img-blog.csdnimg.cn/img_convert/aac1740e50faadb9a6a7a5b97f9ccba8.png)
**微信小程序**
* 简单描述一下微信小程序的相关文件类型?
* 你是怎么封装微信小程序的数据请求?
* 有哪些参数传值的方法?
* 你使用过哪些方法,来提高微信小程序的应用速度?
* 小程序和原生App哪个好?
* 简述微信小程序原理?
* 分析微信小程序的优劣势
* 怎么解决小程序的异步请求问题?
![](https://img-blog.csdnimg.cn/img_convert/60b1dbe5c76e264468aa993416a9a031.png)