用ssm框架做书籍管理系统我的搜索做的很懵逼

我在做一个书籍管理系统界面用的是easeUI
所有信息已经能出来了
现在就剩搜索的功能了那个模糊查询的sql语句和jsp页面应该怎么写啊
我的书架表全部都number类型的没法拼接%
后来我改了一列为varchar2类型和的总报
java.lang.IllegalArgumentException这错误
表示很懵逼我已经把传进来的值封装成我的实体类了
这是我的sql不知道对不对

<!-- 模糊查询    -->


select * from bookshelf
where 1=1
and num like #{num}

</select>
num是我表里的一个列的名字我希望返回值是一个map类型传过来的参数是我的实体类
这是我的动作
@RequestMapping("suosou.action")
    public  @ResponseBody Map<String, Object>  sousuo(HttpServletRequest request){
        Map<String, Object> map=new HashMap<>();
        List<BookShelf>  dvds=null;
        int a=0;
        String value = request.getParameter("value");
        if (!"".equals(value)) {
            BookShelf book=new BookShelf();
            book.setNum("%"+value+"%");
            dvds=service.suosou(book);
             a=dvds.size();
        }
        map.put("rows", dvds);
        map.put("total", a);
        return map;
    }
    我的jsp页面javascript的代码是
    function qq(value,name){
$('#dg').datagrid({
    url : '${pageContext.request.contextPath }/suosou.action?value='+value,
    columns : [ [ {
        field : 'num',
        title : '书架编号',
        width : 100
    }, {
        field : 'cheng',
        title : '层数',
        width : 100
    }, {
        field : 'sumpage',
        title : '总页数',
        width : 100
    },{
        field : 'state',
        title : '状态',
        width : 100
    }

    ] ],
    fitColumns : true,
    rownumbers : true,
    toolbar:'#tbb',
    pagination:true,
    pageList:[3,4,5],
    pageSize:1
});
出来的信息会显示在
<table id="dg"></table>

http://www.zuidaima.com/share/kSSM%E6%A1%86%E6%9E%B6-p1-s1.htm