mybatis中的参数传递以及使用pagehelper进行分页

mybatis如何从前端传入值
1.在mybatis的映射文件中,进行实体类的传参

<insert id="addUser" parameterType="com.bxq.pojo.User">
        insert into user values(#{id},#{username},#{password})
        /*实体类接参*/
    </insert>

在前端接口处写上实体类的形参

 void addUser(User user);

注意此时用的是实体类接参,所以#{}里的是实体类的属性名,必须和实体类的属性名一一对应

2.用注解的方式进行传参
通过导入的mybatis包,里的@Param注解来进行操作

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

首先是dao里向映射文件传入形参的时候:

 void update(User user,@Param( "id" ) int id);

然后是映射文件的写法

  <update id="update"  >
        update user set  username='haihai' where id=#{id}
        /*用注解的方式进行操作,在接口的形参列表上,给参数的形参前面加上@Param(),括号里写参数名称*/
    </update>

这时候,就把名字为id的形参传入了后端,后端#{}里的内容,也是注解的时候写的名字

3.当只有一个参数的时候
当只有一个参数的时候,可以直接写参数类型,然后进行传值:

    <select id="selectById" resultType="com.bxq.pojo.User" parameterType="Integer">
        select * from user where id=#{id}
    </select>

可以看到,此时我是要查询id为特定值的sql语句,只需要一个int类型的值,那么我的parameterType就为Integer就可以了

分页的另外一种写法
首先需要代入依赖包

     <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

在导入依赖包后,在对mybatis的配置文件进行添加导入:

   <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
    </plugins>

就可以使用该依赖包里的方法,进行页数的封装

 PageHelper.startPage(int pageNum, int pageSize);

首先,使用pagehelper里的startPage方法,第一个参数为当前页,第二个参数为页数的大小,来进行页数的封装,然后,吧我们从数据库获取到的实体类list集合封装进pageinfo

  List<User> select = userService.select();
  PageInfo<User> userPageInfo = new PageInfo<>( select );

此时的userPageInfo就是一个拥有了页数,集合等属性的对象,吧该对象传到前端就可以实现分页的效果.
PageInfo<>里的属性:

    private int pageNum;		//当前页数
    private int pageSize;		//页数大小
    private int size;			
    private long startRow;		
    private long endRow;
    private int pages;		
    private int prePage;				//上一页
    private int nextPage;				//下一页
    private boolean isFirstPage;		//是否是第一页
    private boolean isLastPage;			//是否是最后一页
    private boolean hasPreviousPage;	//是否有上一页
    private boolean hasNextPage;	//是否有下一页
    private int navigatePages;
    private int[] navigatepageNums;
    private int navigateFirstPage;
    private int navigateLastPage;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值