编程论坛's Archiver

罗彬 发表于 2008-5-5 09:23

数据库模糊查询

那位高手看一下,为什么以下代码只要加上传过来的参数就无法进行模糊查询呀,每次都是空的.但是我把问号手动的变为 '罗%'这种形式,它又能查询,什么原因呀,急求,谢谢.
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;

        }

高寒 发表于 2008-5-5 14:34

改为:
String sql="select * from Student where name like '%?%'";
...
pst.setString(1,con);
...

罗彬 发表于 2008-5-5 16:00

谢谢,像你这样做就可以了,不过为什么没法像我上边那样做呢??

cfk0621 发表于 2008-5-5 18:56

我也遇到过这种情况,我感觉可能是语法的问题吧!

罗彬 发表于 2008-5-6 13:48

哦,谢谢

fty123 发表于 2008-5-6 15:49

编码问题

编码问题 你的数据库编码跟页面参数编码不匹配
需要转码

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.