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;