今天第一次在springboot中使用了pageHellper插件,怕下次要使用的时候忘记了,以此来进行总结。
首先,使用pom.xml加入
com.github.pagehelper
pagehelper
5.0.0
接着,创建一个provider包,并创建VideoProvider类,主要用来
video构建动态sql语句
public class VideoProvider {
/**
* 更新video动态语句
* @param video
* @return
*/
public String updateVideo(final Video video){
return new SQL(){{
UPDATE("video");
//条件写法
if(video.getTitle()!=null){
SET("title=#{title}");//这里可以用#,但是会存在注入
}
if(video.getSummary()!=null){
SET("summary=#{summary}");//这里可以用#,但是会存在注入
}
if(video.getCoverImg()!=null){
SET("cover_img=#{coverImg}");//这里可以用#,但是会存在注入
}
if(video.getViewNum()!=null){
SET("view_num=#{viewNum}");//这里可以用#,但是会存在注入
}
if(video.getPrice()!=null){
SET("price=#{price}");//这里可以用#,但是会存在注入
}
if(video.getOnline()!=null){
SET("online=#{online}");//这里可以用#,但是会存在注入
}
if(video.getPoint()!=null){
SET("point=#{point}");//这里可以用#,但是会存在注入
}
WHERE("id=#{id}");
}}.toString();
}
}
既然使用了动态的更新语句,那么在mapper层那里的话就要
@UpdateProvider(type = VideoProvider.class,method = "updateVideo") int update(Video video);
使用了@UpdateProvider注解
这个是题外话,
第二步的是增加配置文件:
在config包下创建一个mybatisconfig类
package cc.net.xdvideo.config; import com.github.pagehelper.PageHelper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.awt.print.Pageable; import java.util.Properties; /** * mybatis分页插件配置 */ @Configuration public class MyBatisConfig { /** * @Beam相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 * @return * 这个文件的意思的:在springboot的启动类(Application.java)里面注入配置 */ @Bean public PageHelper pageHelper(){ PageHelper pageHelper =new PageHelper(); Properties properties=new Properties(); //设置为true是时,会将rowbounds第一个参数offset当成pageNum页码使用 properties.setProperty("offsetAsPageNum","true"); //设置为true时,使用rowbounds分页会进行count查询 properties.setProperty("rowBoundsWithCount","true"); properties.setProperty("reasonable","true"); pageHelper.setProperties(properties); return pageHelper; } } 使用@Bean注解
这个文件的意思的:在springboot的启动类(Application.java)里面注入配置
package cc.net.xdvideo.config; import com.github.pagehelper.PageHelper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.awt.print.Pageable; import java.util.Properties; /** * mybatis分页插件配置 */ @Configuration public class MyBatisConfig { /** * @Beam相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 * @return * 这个文件的意思的:在springboot的启动类(Application.java)里面注入配置 */ @Bean public PageHelper pageHelper(){ PageHelper pageHelper =new PageHelper(); Properties properties=new Properties(); //设置为true是时,会将rowbounds第一个参数offset当成pageNum页码使用 properties.setProperty("offsetAsPageNum","true"); //设置为true时,使用rowbounds分页会进行count查询 properties.setProperty("rowBoundsWithCount","true"); properties.setProperty("reasonable","true"); pageHelper.setProperties(properties); return pageHelper; } }
接下来的就是控制器的调用了:
@PutMapping("update_by_id") public Object update(@RequestBody Video video) { return videoService.update(video); }