介绍Springboot旨在加快开发速度,减少xml配置。如果不想写配置文件,只需要在配置文件中添加相应的配置即可快速启动程序。Generalmapper通用mapper只支持对单表的操作。对于单表的增删改查,不需要在mapper.xml中编写相应的sql语句,只需要调用相应的接口即可。pagehelppagehelper主要是对查询到的数据进行分页查询。首先在maven项目中,在pom.xml中引入mapper和pagehelper依赖com.github.pagehelperpagehelper-spring-boot-starter/artifactId>1.2.3tk.mybatismapper-spring-boot-starter/artifactId>1.0.0新建mymapper.java文件,继承mapper接口publicinterfaceMyMapperextendsMapper,MySqlMapper,ConditionMapper{//FIXME特别注意,这个接口不能被扫描,否则会报错}这个java文件不能和其他的mapper放在一起,以免被扫描。获取单表数据的操作直接调用该方法。3在配置文件上添加属性字段#jdbcspring.datasource.url=jdbc:mysql://127.0.0.1:3306/newsspring.datasource.username=数据库用户名spring.datasource.password=数据库密码spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.freemarker.request-context-attribute=request#mappermapper.mappers=com.imooc.springboot.mapper.util.MyMappermapper.not-empty=falsemapper.identity=MYSQL#pagehelperpagehelper.helper-dialect=mysqlpagehelper.reasonable=truepagehelper.support-methods-arguments=truepagehelper.params=count=countSql上面配置的mapper.mappers就是步骤2中文件所在的路径。4添加controller文件后,controller中的方法调用server中的方法。虽然有一个通用的mapper方法,但是每次添加一个server方法,都要添加相应的mapper方法,所以开发起来比较麻烦,所以我们需要一个通用的server类,用这个类来调用第二个的方法步。好的。publicinterfaceBaseService{/***查询全部**@return返回所有数据*/ListfindAll();/***添加**@paramt实体**@return*/intsave(Tt);/***修改**@paramt*entity*@return*/intupdateByPrimaryKey(Tt);/***根据主键删除**@paramt主键**@return*/intdeleteByPrimaryKey(intt);/***查询表列表*@paramt分页参数*@return*/TableDatagetTableData(PageBeanpageBean);}以上只是封装了基本的增删改查的方??法,你可以添加方法自己稍后。然后添加实现类publicabstractclassBaseServiceImplimplementsBaseService{@AutowiredprotectedMyMappermapper;@OverridepublicListfindAll(){returnmapper.selectAll();}@Overridepublicintsave(Tt){returnmapper.insert(t);}@OverridepublicintupdateByPrimaryKey(Tt){returnmapper.updateByPrimaryKey(t);}@OverridepublicintdeleteByPrimaryKey(intt){returnmapper.deleteByPrimaryKey(t);}@OverridepublicTableDatagetTableData(PageBeanbean){intcount=mapper.selectAll().size();if(count>0){PageHelper.startPage((bean.getOffset()/bean.getLimit())+1,bean.getLimit());Listlist=this.findAll();返回TableData.bulid(计数,列表);}返回TableData.empty();}}注:我用的编辑器编辑器是eclipse,如果用idea编辑器,这里可以去掉abstract。然后添加相应的接口和实现类继承上面的接口和方法,例如添加newsserver接口和newsserverImpl类publicinterfaceNewsServiceextendsBaseService{}@ServicepublicclassNewsServiceImplextendsBaseServiceImplimplementsNewsService{}5为了减轻数据库服务器的压力,我们在查询数据的时候一般会使用pagehelper来进行分页查询。为了更清楚的展示我们展示的数据,我们使用bootstraptable来展示数据。bootstraptable获取数据有两种方式,一种是client方式,即获取所有数据后,在前端以页面的形式展示。另一种就是我们接下来要说的服务端模式:通过前台发送上述参数,将要获取的数据信息,比如数据页码,每页数据的大小等发送到后台结束,后台获取这些参数信息后的返回数据。6介绍完bootstraptable相关的jscss文件,开始在网上找了一些资料,发现很多都需要在前端页面添加如下繁琐的配置,$('#mytable').bootstrapTable({//请求方法method:'get',//是否显示行间隔颜色striped:true,//是否使用缓存,默认为true,所以一般需要设置这个属性(*)cache:false,//是否显示分页(*)pagination:true,//是否启用排序sortable:false,//排序方式sortOrder:"desc",//初始化第一个页面加载,默认为第一个页面//我设置了这个项,但是好像不起作用,而且我默认是0,--//pageNumber:1,//每页记录行数(*)pageSize:10,//数量ofrowsperpagetochoosefrom(*)pageList:[10,25,50,100],//该接口需要处理bootstraptable传入的固定参数,返回特定格式的json数据url:"${contextPath}/mapper/getTableData",//默认值为'limit',传递给服务端的参数有:limit,offset,search,sort,orderelse//queryParamsType:'',////查询参数,每次调用都会带上这个参数,可以自定义queryParams:queryParams:function(params){varsubcompany=$('#subcompanyoption:selected').值();varname=$('#name').val();返回{pageNumber:params.offset+1,pageSize:params.limit,companyId:subcompany,name:name};},//分页方式:客户端分页,服务端分页(*)sidePagination:"server",//是否显示搜索search:false,//开启严格搜索。strictSearch:true,//指明哪个字段是身份字段。idField:“id”,列:[],分页:真});每次添加页面都要添加上面的配置信息会很复杂很简单,但是在bootstrap-table.js中有一个默认的配置,你只需要修改里面的几个配置contentType:'application/json',//post请求头application/x-www-form-urlencoded;charset=UTF-8'dataType:'json',sidePagination:'server',//当我们点击表单的时候改成server在分页页码的时候,在获取和改变每页显示的页码的时候,前端会自动调用queryParams()方法,我们需要将这些数据传递给后台,functionqueryParams(params){varquery={};query["limit"]=params.limit;//多少条数据开始query["offset"]=params.offset;//数据大小返回query;}6配合上一步的前端分页,我们需要用到pagehelp插件,我们也把这个分页方法放在通用的服务器类上,publicTableDatagetTableData(PageBeanbean){intcount=mapper.selectAll().size();if(count>0){PageHelper.startPage((bean.getOffset()/bean.getLimit())+1,bean.getLimit());Listlist=this.findAll();返回TableData.bulid(计数,列表);}返回TableData.empty();上面的pagehelper.startpage需要稍微改动一下。前端是显示前几条数据,但是startpage方法的第一个参数是显示第一页数据,所以做一个转换pageoffset/limit+1,然后查询数据,需要注意的是的tartpage方法查询数据语句上一行,无空行,或换行附录:github源码demo展示