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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值