我连的是sql数据库
select * from sky where name like '%北%'
这条sql语句在sql2000的查询分析器中是正确的,也可以查出关键字'北'相关的数据
但在jsp里的jdbc中却不行啊`老是报语法错误! //根据用户输入的数据查询数据
public List selectAll(String text)
{
List body = new ArrayList();
try {
this.getconn();
ps = conn.prepareStatement("select * from sky where name like '%?%'");
ps.setString(1,text);
rs = ps.executeQuery(); 请教各位大侠在prepareStatement中怎么用like查询!小弟万分感谢!
select * from sky where name like '%北%'
这条sql语句在sql2000的查询分析器中是正确的,也可以查出关键字'北'相关的数据
但在jsp里的jdbc中却不行啊`老是报语法错误! //根据用户输入的数据查询数据
public List selectAll(String text)
{
List body = new ArrayList();
try {
this.getconn();
ps = conn.prepareStatement("select * from sky where name like '%?%'");
ps.setString(1,text);
rs = ps.executeQuery(); 请教各位大侠在prepareStatement中怎么用like查询!小弟万分感谢!
con = JDBConnection.getConnection();
ps = con.prepareStatement(FinalConstants.MESS_SEARCH);
ps.setString(1, '%' + keyword + '%');
ps.setString(2, '%' + keyword + '%');
rs = ps.executeQuery();如红色所指示
'%' + keyword + '%'
是不对的
public static final String MESS_SEARCH = "select * from tbMessage where Title like ? or Content like ? order by PubTime DESC";ps.setString(1, '% ' + keyword + '% ');
ps.setString(2, '% ' + keyword + '% ');
ps.setString(1,'%'+text+'%');
我换成这样,语法是没错误了,可显示不出来数据哦!
ps.setString(1,text); 改为:
ps = conn.prepareStatement("select * from sky where name like ?");
ps.setString(1,"%" + text + "%");
如select * from sky where name like '%?% ' 按你的写法,就成‘%‘?’%’,
所以就要把 %% 当作参数一起传进去,楼上的写法是正确的
ps = conn.prepareStatement("select * from sky where name like ?");
ps.setString(1,"%" + text + "%");
ps = conn.prepareStatement( "select * from sky where name like "+"%"+"?"+"%");
ps.setString(1,text);
ps.setString(1,"%" + text + "%");这样没有错的和我写的那个是一样的