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;