数据库expecting ''', found ''异常——原载于我的百度空间

该异常是我在读取数据库的时候发生的,当时findbyTitle(“。。。”),title中包含了单引号,具体为“Boom, Boom, Ain't it great to be crazy?”这个title其实是从数据库中读出的用的是gettitle(),读出之后直接用出现了问题。原因是字符串包含了数据库查询默认的结束字符段" '  ",数据库认为这是字符串结尾的字符,但实际上不是,数据库查询语句就会多出一个字符" ' ",所以使用hibernate查询时就会返回EOF异常。

如何解决呢,其实在查找时使用转移字符即可,即findbytitle(Boom, Boom, Ain'’t it great to be crazy?),这样查找就不会出错。

因为数据库不是我插入的,所以我没有遇到插入的问题,但是java中插入数据有时会出现下面这种情况:

org.hibernate.QueryException: expecting ''', found '<EOF>' [from com.zhjedu.exam.domain.ZjQuestion

原因是:因为在插入的数据中有英文逗号的存在,所以就会出现此错误,在插入数据时是以下面的格式插入的:

insert into test values('1','abc','yes');

如果在插入数据时再出现英文逗号,就出成经下情况,例如:在第个数据处

insert into test values('1','ab'c','yes');这时就会产生错误,所在平时一定要注意此点。

解决方案和查询是一样的,也是应用转义字符,在插入时将“'”替换为“''”来存,这样存到数据库里面的仍然是“'”,当然用\'来转义也是可以的,记住是\,不是/。
--------------------- 
作者:xiaoxiansweety 
来源:CSDN 
原文:https://blog.csdn.net/xiaoxiansweety/article/details/10062363 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值