jdbc执行带参数的SQL语句

dingdot 2012-03-02 05:40:55

public Pet getByName(String name) {
Connection conn=BaseDao.getConnection();
String sql="select id,master_id,name,type_id,love,health,adopt_time,status from pet where name like '%?%'";

PreparedStatement preStmt=null;
ResultSet rs=null;
try {
preStmt= conn.prepareStatement(sql);
preStmt.setString(1, name); //执行到这里,报索引列出错,应该是sql语句like后面那部分出错,要怎么改呢
rs=preStmt.executeQuery();
//.....省略
}
}




请教,lik后面的语句要怎么写。
...全文
903 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Postgre.J 2012-04-22
  • 打赏
  • 举报
回复
写成这样:
String sql="select id,master_id,name,type_id,love,health,adopt_time,status from pet where name like '%' + ? + '%'";
a395885670 2012-03-03
  • 打赏
  • 举报
回复
把 '%?%'换成? 然后在参数里面使用%条件%这种形式
有一只柴犬 2012-03-02
  • 打赏
  • 举报
回复
'%?%'是一个字符串啊 是识别不到的
  • 打赏
  • 举报
回复

String sql="select id,master_id,name,type_id,love,health,adopt_time,status from pet where name like ?";
preStmt.setString(1, "%" +name+ "%");

如果没有其他乱码错误应该可以了
dingdot 2012-03-02
  • 打赏
  • 举报
回复
我上面引错了,是要引1楼的,引成自己了。。
dingdot 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 dingdot 的回复:]
Java code

public Pet getByName(String name) {
Connection conn=BaseDao.getConnection();
String sql="select id,master_id,name,type_id,love,health,adopt_time,status from pet where name ……
[/Quote]
? 代表参数占位符啊,你这里没有?号啊
小北漂 2012-03-02
  • 打赏
  • 举报
回复
String sql="select id,master_id,name,type_id,love,health,adopt_time,status from pet where name like '%%'";

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧