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();

这样就能获取数据了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM