我想创建一个包含ascii或unicode字符代码的sql查询。例如,单引号(')的ascii字符代码是 39
unicode代码是 U+0027
. 在java中,我想通过将单个代码替换为它们的字符代码来编写一个查询:
ascii码:
connection.createStatement().executeQuery("select * from users where name =39test39")
unicode码:
connection.createStatement().executeQuery("select * from users where name =U+0027testU+0027")
所有这些查询都应该等价于 "select * from users where name ='test'"
当我运行上面的代码时,dbms(我尝试了mysql和sqlite)不能将ascii和unicode代码识别为单个引号。
总之,我知道参数化查询是最理想的。但是,在这里我想做的是,当dbms解析sql代码时,dbms应该识别unicode字符。例如,如果我使用\u0027,jvm会将其识别为单个引号,但我希望jvm不识别,dmbs识别字符编码。
有没有办法用字符代码代替字符本身?
3条答案
按热度按时间wbrvyc0a1#
不,你不想那样做。你应该这样做
请记住,java中的所有字符串都是unicode字符串,因此您的建议是开始将字符串值作为字节流发送到jdbc驱动程序,这会很混乱并且容易出错(如果可能的话)。
pftdvrlh2#
查询应如下所示:
wqsoz72f3#
当您将ascii/unicode数字放在双引号内时,它们不会解析为字符,请尝试以下操作:
然后就可以建立你要找的字符串了