javascript
SpringBoot整合Mybatis,使用通用mapper和PageHelper进行分页
上節介紹了如何整合Security,這節就說下如何再Springboot下使用持久層框架mybatis和牛人封裝的通用mapper與mybatis的整合,直接進入正題吧!
1.首先引入我們需要的依賴:
通用mapper PageHelper mybatis2.mybatis的配置
配置myabtis有兩種方式,一是通過javaconfig配置還有一種直接使用Springbot的配置文件進行設置:mybatis.mapper-locations=classpath:mapper/**/*.xml,但是我這里使用的是mybatis的注解方式所以連這個都不需要配置,另外還需要配置mapUnderscoreToCamelCase這個屬性,這是用來我們做查或者新增的時候,mybatis自動會把我們的實體類按照駝峰格式轉為數據庫里面的下劃線格式,好處就是不要寫resultmap了。
3.通用mapper的集成
首先我們需要定義一個我們自己的通用mapper接口繼承封裝好的兩個接口(都在tk里面)
MyMapper.java接下來我將我們對應的mapper繼承這個mapper,使用mapper注解
FrameCodeMapper.java這里面我只寫了一個deletes方法,用來進行批量刪除的,但是這個mapper已經具備增刪改查的所有功能,其中FrameCode是我們與數據表中對應的實體。既然我們已經有了mapper我們就看如何使用他們了
FrameCodeService.java我們再service層里面進行了了對mapper的調用,我們可以看出selectByExample,insert,updateByPrimaryKey這些方法我們再mapper中都沒有定義,說明我們可以直接使用通用mapper里面的方法,我們不需要寫哪些重復的增刪改查代碼了。對于mapper里面封裝的crud方法,我這里值=只著重講一個查詢(模糊查詢),也許是使用的最常見的,也是mapper里面使用的最麻煩的一個方法,我這里對他進行了一個簡單的封裝:
4.原始的mapper里面的模糊查詢方法
模糊查詢的mapper可以看出這里需要準備criteria進行創建模糊查詢,這里還只是模糊查詢一個字段,如果后續增加了字段,還需要不斷的再這里添加,是不是很麻煩,而且也不好移植,所以我這里就對他進行了簡單的封裝,用的是反射,自從知道了反射,好多功能上面都用上了,確實很方便
MapperUtils.java到這里為止,已經將mybatis的集成和通用mapper的使用介紹完畢,最后再介紹一個插件PageHelper的使用
5.PageHelper的集成與使用
我們再做項目時,避免不了會進行分頁,我們會自己進行去下分頁語句,mysql會使用limit,sqlserver使用top,oracle使用rownumber實現,會不會覺得很不方便,今天我為給大家介紹一下PageHelper這個插件在Springboot中的使用
首先引入插件的依賴
PageHelper的pom接著對pagehelper進行配置,這里也有兩種方式:我都貼出來
利用springboot的配置文件 使用javaconfig模式進行配置最后介紹下如何在項目中使用:
? ? ? ? 1.先從請求參數中獲取到pageCurrent(當前頁),pageSize(頁面大小),因為我前端用的時bjui框架,所以在后臺接收到的是這兩個字段。
? ? ? ? 2.我們將請求參數 PageHelper.startPage(pageCurrent,pageSize);放到這里面
? ? ? ? 3.再查詢我們需要的數據,例如這樣:List entitys = service.getAll(entity);
? ? ? ? 4.最后再將數據封裝到PageInfo pageInfo=new PageInfo(entitys);這里,
? ??????pageInfo里面存儲了我們想要的數據,total,start,limit,size都在里面,我們只需要去除我們關心的數據就好了,我這里值取出了數據的總記錄數pageInfo.getTotal(),總的代碼記錄如下
分頁代碼的實現感謝大家能看到這里,文中講的不正確的地方,歡迎在下方留言,我會及時修正。
歡迎大家關注我的公眾號,會不定時更新技術干貨。
總結
以上是生活随笔為你收集整理的SpringBoot整合Mybatis,使用通用mapper和PageHelper进行分页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vagrant 本地添加box 支持带版
- 下一篇: oracle锁定用户名及解锁