java使用Access資料庫中萬用字元的一些坑
阿新 • • 發佈:2018-12-03
java使用Access資料庫中萬用字元的一些坑
在使用access資料庫寫一個條件為like的語句:
select mess_id ,mess_name,mess_note,mess_txt from messtable where 1=1 and mess_name like ‘*美*’
意思是查詢mess_name中包含‘美’字的資料,因為access中*號代表任意個字元,這個其他資料庫用%不太一樣,在access中測試通過,然後我寫了如下語句想
StringBuilder sql=new StringBuilder("select mess_id ,mess_name,mess_note,mess_txt from messtable where 1=1 mess_name like ?");
然後用給佔位符賦值PreparedStatement.setString(1,”*美*”);這個時候一直無法得到預期結果,然後開始百度,發現有人說在C#裡access*萬用字元不起作用,要改成%,我想是不是java也是這樣的?然後改成%%,然後奇蹟般的就好了,具體原因沒有找到,記錄在這裡,方便其他人。第一次寫部落格,好多功能不會用,就這樣吧,另外說下我連線access用的是ucanaccess這個包,依賴如下
maven 依賴地址
<dependency> <groupId>net.sf.ucanaccess</groupId> <artifactId>ucanaccess</artifactId> <version>4.0.4</version> </dependency>