1. 程式人生 > >資料庫expecting ''', found ''異常——原載於我的百度空間

資料庫expecting ''', found ''異常——原載於我的百度空間

我的百度空間連結-http://blog.csdn.net/xiaoxiansweety/article/details/10062363

該異常是我在讀取資料庫的時候發生的,當時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');這時就會產生錯誤,所在平時一定要注意此點。

解決方案和查詢是一樣的,也是應用轉義字元,在插入時將“'”替換為“''”來存,這樣存到資料庫裡面的仍然是“'”,當然用\'來轉義也是可以的,記住是\,不是/。