注册 登录
编程论坛 J2EE论坛

数据库模糊查询

罗彬 发布于 2008-05-05 09:23, 1151 次点击
那位高手看一下,为什么以下代码只要加上传过来的参数就无法进行模糊查询呀,每次都是空的.但是我把问号手动的变为 '罗%'这种形式,它又能查询,什么原因呀,急求,谢谢.
public List queryLike(String con) throws Exception
    {
    
    
        String sql="select * from Student where name like ?";
        conDao cd=new conDao();
        List li=new ArrayList();
        ResultSet rs=null;
        PreparedStatement pst=null;
        try{
            pst=cd.getCon().prepareStatement(sql);
            pst.setString(1,"%"+con+"%");
            rs=pst.executeQuery();
            while(rs.next())
            {
                Student stu=new Student();
                stu.setId(rs.getString(1));
                stu.setName(rs.getString(2));
                stu.setAge(rs.getInt(3));
                li.add(stu);
                
            }
               rs.close();
            pst.close();
            
            
        }catch(Exception e)
        {
            System.out.println("操作异常");
        }finally
        {
            cd.close();
        }
        return li;

    }
5 回复
#2
高寒2008-05-05 14:34
改为:
String sql="select * from Student where name like '%?%'";
...
pst.setString(1,con);
...
#3
罗彬2008-05-05 16:00
谢谢,像你这样做就可以了,不过为什么没法像我上边那样做呢??
#4
cfk06212008-05-05 18:56
我也遇到过这种情况,我感觉可能是语法的问题吧!
#5
罗彬2008-05-06 13:48
哦,谢谢
#6
fty1232008-05-06 15:49
编码问题
编码问题 你的数据库编码跟页面参数编码不匹配
需要转码
1