java中编写sql语句的单引号、双引号问题

一、场景描述

平时在用字符串拼接sql语句的时候,有没有遇到过下面的情况:

a1bac1306bd1b676b5f3901664873399.png

没错,就是单双引号问题。其实,关于双引号我们是容易理解的,sql语句是用String字符串拼接的,因此需要用到双引号。但是为什么双引号里面还要嵌套一个单引号是不是对于刚入门的初学者有些蒙蔽了呢,下面我们一起来分析一下,你就明白啦!

二、问题分析

平时写sql的时候,遇到条件为字符串的值,我们会习惯性的加上单引号''

其实,在sql语句中,尤其是MySQL,对于字符型只接受单引号

select * from student t where t.name = '冰雪的灵界石'

复制代码

而对于数字类型的就不需要加单引号了

select * from student t where t.age = 23

复制代码

凡事都有但是,上面的情况发生在数据库端,如果在应用程序端那就不一样了。在写代码的时候,我们如果需要手写sql进行拼接的话,那么sql语句也作为字符串存在,就需要双引号了,可是我的sql条件里有字符型的变量,这个时候就遇到了开篇的那张截图的情况了,双引号里面包裹着单引号。

StringBuilder sql = new StringBuilder();

sql.append("select * from student t where t.gender = ' " + gender + " ' ")

复制代码

这样把sql解析到数据库里去执行的时候就不会出错啦

三、总结

平时在开发的时候,或多或少遇到的一些问题就是sql语句:代码早就写好了,却一直在调试sql。所以,我们一定要练好基本功,遇到问题学会分析,在解决问题的过程中也是你成长最快的时候。

书写sql语句的时候,字符型要加上单引号,数字型就不需要了

在代码里手写sql拼接时要把字符串的变量用单引号包住

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值