美文网首页
mybatis多条件查询

mybatis多条件查询

作者: 李霖神谷 | 来源:发表于2019-11-28 22:51 被阅读0次

    在开发中,我们需要传过来的参数可能有很多,这里设置一个vo类型的包。将此类封装多个条件。
    在进行模糊分页查询的时候需要另外添加起始索引,和每页要查询的个数。
    vo下的类:

    public class QueryVo {
        private book b;
        private  Integer start;
        private Integer end;
    
    

    test类:

    public void test(){
           SqlSession sqlSession= sqlSessionFactory.openSession();
           bookDao bookDao= sqlSession.getMapper(bookDao.class);
           QueryVo queryVo=new QueryVo();
           book b=new book();
           b.setName("丽");
           queryVo.setB(b);
           queryVo.setStart(2);
           queryVo.setEnd(6);
           List<book> bookList= bookDao.findAll(queryVo);
            for (book book : bookList) {
                System.out.println(book);
            }
        }
    

    映射文件:

    <mapper namespace="com.shuai.Dao.bookDao">
       <select id="findAll" resultType="com.shuai.domain.book" parameterType="com.shuai.VO.QueryVo">
           select * from p  where name like "%"#{b.name}"%"  limit #{start},#{end};
       </select>
    
    

    这里要注意一个问题:
    (1)控制台中文乱码问题,在settings中找到filsencoding,将idear页面的编码设置一下
    核心配置文件中数据库url <property name="url" value="jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8&"></property>
    (2)映射文件与接口文件的路径问题:
    当设置
    <mappers>
    <package name="com.shuai.mapper"></package>
    </mappers>
    映射文件的路径与名称一定要与dao层的接口的名称与路径一样否则就会报错

    当返回值与数据库的数值不一致的时候就需要配置resultMap="booklist

    <mapper namespace="com.shuai.mapper.bookDao">
        <resultMap id="booklist" type="com.shuai.domain.book">
            <result property="my_password" column="password"></result>
        </resultMap>
    
       <select id="findAll"  resultMap="booklist" parameterType="com.shuai.VO.QueryVo">
           select * from p  where name like "%"#{b.name}"%"  limit #{start},#{end};
       </select>
    
    </mapper>
    

    相关文章

      网友评论

          本文标题:mybatis多条件查询

          本文链接:https://www.haomeiwen.com/subject/xcwiwctx.html