关于java实现“搜索功能”的历程(spring框架类型)

我在搜索功能上写出我的感受,一开始 是看的 慕课的ajax搜索框实现,但是它没有从数据库里取出来,而是创建了数组,在数组中用contanis()函数模糊查询。因此 我受到启发,把数据库里内容取出来放在数组里,在查询,代码如下:

//此函数方法是把数据库里的内容取出来  然后    拿出 name  比较    如果相同就把他添加到新的 对象中
        public List<Map<String,Object>> peopleList2(String checka){
            String sql="select * from t_people where status=0 order by created";
            //System.out.println("查询service");
            List<Map<String,Object>> list=jt.queryForList(sql);
            List<Map<String,Object>> list1=new ArrayList<Map<String,Object>>();
            int i=0;
            for(Map<String, Object> data:list){
                Map<String, Object> name = list.get(i);
                //System.out.println(name);
                if( name.get("name").equals(checka)){
                    //System.out.println("11"+name);
                    list1.add(name);
                }
                i++;
            }
            return list1;
        }

第二个启示,因为数组不实用,我就找到了用sql语句like实现:代码如下

        public List<Map<String,Object>> peopleList1(String checka){
            //%是通用匹配符号,为了在like后面加上  关键字,需要用' 
            String sql="select * from t_people where status=0 "
                    +"and name like '"+"%"
                    +checka+"%'"
                    +"order by created";
            List<Map<String,Object>> list=jt.queryForList(sql);
            return list;
        }
    注意的是:其中关键字在sql语句的 添加需要加''单引号,进行连接 ,否则报错(我研究了好久);
    3.最后 一个最好  可以匹配你传进来的内容,原理是,把sql语句写上参数,然后把传进的内容比较存不存在,存在的话把那个参数语句加上关键字,不存在的话,删除带参数的sql语句,如例:
    ``` 
        public List<Map<String,Object>> peopleList3(String checka,Page page){
        String sql="select * from t_people where status=0 "
                +"and name like ?"
                +"order by created";
        System.out.println("查询service");
        List<String> param=new ArrayList<String>();
        if(ChkTools.isNull(checka)){
            sql=sql.replace("and name like ?", "");
        } else {
            param.add("%" + checka +"%");
            System.out.println(sql);
            System.out.println("执行到了else");
        }
        //page用来分页
        List<Map<String,Object>> list=list=jc.queryForList(sql, param.toArray(), page);
        return list;
    }
    ```

这里写图片描述

这里写图片描述
这里写图片描述
jsp层

猜你喜欢

转载自blog.csdn.net/qq_37355731/article/details/62222971
今日推荐