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