java mysql prepareStatement模糊查询like使用注意

今天在使用mysql 的like语句是,发现prepareStatement的like语句和一般的=写法有一样。

当要使用prepareStatement的like查询时,按照一般写法,都会写成:

String sql = "select * from tablename like '%?%'";

String sqlParasValue = "2015-03-23";

pStmt =conn.prepareStatement(sql);

pStmt.setString(1, sqlParasValue);

pStmt.execute();

结果发现获取不了数据,反而会出现sql参数异常。

在网上百度了下,好多人也遇到了这个问题,原来写法不太一样。

应该这么写:

String sql = "select * from tablename like ?";

String sqlParasValue = "%" + "2015-03-23" + "%";

pStmt =conn.prepareStatement(sql);

pStmt.setString(1, sqlParasValue);//会自动添加单引号

pStmt.execute();

这样就能获取数据了。

 

posted on   jec  阅读(4801)  评论(1编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示