2 qq 28930619 qq_28930619 于 2018.05.16 19:37 提问

ssm pageheleper 模糊查询语句出错 20C

@RequestMapping("mohu")
public String mohuchaxun(@RequestParam(value="pn",defaultValue="1")Integer pn,Model model,books bk){
//从第一条开始 每页查询五条数据
PageHelper.startPage(pn, 3);
List users = userService.mohu(bk);

    System.out.println("测试集合有没有获取到数据"+bk.getBookuser());

        System.out.println("大小"+users.size());



    //将用户信息放入PageInfo对象里
    PageInfo page1 = new PageInfo(users,7);
    model.addAttribute("pageInfo2", page1);
    return "mohu";
}
    -----------------------------------------------------------------controller

    <select id="mohu" parameterType="books" resultType="books">
    select * from
    books where bookuser LIKE '%' #{bookuser} '%'
</select>

-------------------------------------------------------------------dao.xml


  <c:forEach items="${pageInfo2.list }" var="user">
                    <tr>
                    <td>${user.bid}</td>
                    <td>${user.bookuser }</td>
                        <td>${user.booktype }</td>
                          <td><img src="${user.bookimg}" width="200" height="100" ></td>
                        <!-- 
                        <td><img src="${user.bookimg}" width="200" height="300" ></td>
                         -->
                        <!-- <td><a  class="edit">编辑</a> <a
                             class="delete">删除</a></td> -->

                    </tr>
                </c:forEach>
            </table>
        </div>
    </div>

    <hr style="height:1px;border:none;border-top:1px solid #ccc;" />
    <!-- 分页导航栏 -->

    <!-- 分页信息 -->
    <div class="row">
        <!-- 分页文字信息,其中分页信息都封装在pageInfo中 -->
        <div class="col-md-6">
            当前第:${pageInfo2.pageNum}页,总共:${pageInfo2.pages}页,总共:${pageInfo2.total}条记录
        </div>

    <!-- 分页条 -->
        <div class="col-md-6">
            <nav aria-label="Page navigation">
              <ul class="hvtulli"  style="list-style-type:none"> 
                <li><a href="${path}/user/mohu?pn=1">首页</a></li>
                <c:if test="${pageInfo2.hasPreviousPage }">
                     <li>
                      <a href="${path}/user/mohu?pn=${pageInfo2.pageNum-1}" aria-label="Previous">
                        <span aria-hidden="true">上一页</span>
                      </a>
                    </li>
                </c:if>

                <c:forEach items="${pageInfo2.navigatepageNums }" var="page_Num">
                    <c:if test="${page_Num == pageInfo2.pageNum }">
                        <li class="active"><a href="#">${ page_Num}</a></li>
                    </c:if>
                    <c:if test="${page_Num != pageInfo2.pageNum }">
                        <li><a href="${path}/user/mohu?pn=${ page_Num}">${ page_Num}</a></li>
                    </c:if>
                </c:forEach> 
                <c:if test="${pageInfo2.hasNextPage }"><a href="${path}/user/mohu?pn=${pageInfo2.pageNum+1}" aria-label="Next">下一页
                      </a>

                </c:if>   
                <a href="${path}/user/mohu?pn=${pageInfo2.pages}">末页</a> 

-----------------------------------------------------------jsp
普通的查询这样都可以做到。 但是这个模糊查询,点击首页或者末页就会报错,
Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'null '%') tmp_count' at line 2

The error may exist in com/ssm/dao/Userdao.xml

The error may involve com.ssm.dao.Userdao.mohu-Inline

The error occurred while setting parameters

SQL: select count(0) from (select * from books where bookuser LIKE '%' ? '%') tmp_count

知道是sql的错误, 请大神帮我看看怎么办。 我是初学者。

7个回答

weixin_40420163
weixin_40420163   2018.05.16 19:47
weixin_42225175
weixin_42225175 不错
3 个月之前 回复
weixin_41777664
weixin_41777664 涛高生了
3 个月之前 回复
qq_28930619
qq_28930619 我第一次能查到, 点击换页的时候出错。 貌似不是那些问题
3 个月之前 回复
metaldong
metaldong   2018.05.16 21:05

模糊查询要使用CONCAT函数连接%与变量

ilifetree
ilifetree   2018.05.17 08:09
a718089112
a718089112   2018.05.17 09:03

sql改一下:

select * from books where bookuser LIKE CONCAT('%', #{bookuser}, '%')

weixin_39747320
weixin_39747320   2018.05.17 11:43

把sql改一下应该可以:select * from books where bookuser LIKE CONCAT('%', #{bookuser}, '%')
试一试吧

max_liuaijun
max_liuaijun   2018.05.17 14:50

select * from books where bookuser LIKE '%'||#{bookuser}||'%' 这样也可以

qq_37466787
qq_37466787   2018.05.18 16:56

parameterType="books" 是否进行了注入 ,或者改为 parameterType="hashmap"试一下

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SSM模糊查询语句
接口 //模糊查询用户信息 public List&amp;lt;User&amp;gt; likeName(@Param(&quot;name&quot;) String name);mapper.xml&amp;lt;select id=&quot;likeName&quot; parameterType=&quot;String&quot; resultType=&quot;com.hp.bean.Hyou&quot;&amp;gt; select*from `user` where usernam
mybatis中模糊查询的sql语句
<select id="goodsList" parameterType="goods" resultMap="goodsResult"> select * from ssm_goods <where> <if test="text_find != null and text_find != ''">
MyBatis Like模糊查询参考解决策略
双引号”直接连接<select id="getUsersByName" parameterType="string" resultType="com.buaa.mybatis.po.User"> SELECT * FROM USER WHERE username LIKE "%"#{name}"%" </select>评价:best。利用MySQL内置函数CONCAT()<select id
mybatis 模糊查询简单sql
这篇文章算是一个记录吧。我最近事比较多,然后可能会忘一些东西,所以写下来以后可以翻出来查看一下子 mybatis 调用 和 的时候需要在mapper里面传入一些参数 会调用@param 这个标签 不然测试时候会出现不能调用string这个参数的错误 话不多说开始上代码 // 模糊查询所有的帖子 (含通过和未通过的) List findByTitle(@Param("title") St
SSM框架的分页模糊查询代码(精)
【学习SSM分页模糊查询必备】 .zip格式,方便Windows和Unix用户 登录页地址:http://localhost:8080/ssm3/user/login 账号密码为数据库中所有用户名和密码(admim 123) tomcat配置文件和jdbc不匹配的请自行修改 环境:基于SSM框架(Spring+SpringMVC+MyBatis) + Mysql数据库 + Tomcat7 功能:登录、首页显示用户名和身份、分页http://u.download.csdn.net/images/btn_submit.png、模糊查询、 页面跳转(首页、上一页、下一页、末页、指定页跳转(用户输入),第几/几页,总数据行数) 以及跳转页数的溢出判断、非整形正则判断 数据视图的隔行变色和光棒效果
Mybatis中mapper模糊查询语句LIKE
最近做学校安排的课程设计作业,用到SSM框架,在自己写mapper代码是遇到了模糊查询的问题 困扰好久 下面是我解决这个问题的方法,其他网上好多方法我尝试过却没有实现 下面试sql语句 select * from goodsinfo where goodsname like '%' #{goodsname} '%' 注意代码中的空格  空格 空格   #{ } 方式还可以
模糊查询在mybatis配置xml文件中的写法
由于不希望在使用ssm框架时,手动添加为模糊查询添加%,对字段又修改,容易出错,所以模糊查询的%%写在xml里面。 常见写法有    拼接方式, AND user_name like '%#{user_name}%' 这种方式如果参数为空格,查询错误 拼接方式补充 AND user_name like ”%‘#{user_name}’%“ 这种方式查询不完整, 最后确定  C
mybatis中模糊查询sql语句
select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">     select * from t_user where user_name like CONCAT('%',#{search_name},'%')   select>      se
ssm框架下模糊查询分页
本资源适合初学者学习物理分页技术
ssm批量删除和模糊查询
1.Dao层方法 package com.tcc.dao; import java.util.List; import org.apache.ibatis.annotations.Param; import com.tcc.bean.student; import com.tcc.bean.type; public interface usermappe