1. 程式人生 > >java使用Access資料庫中萬用字元的一些坑

java使用Access資料庫中萬用字元的一些坑

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>