欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Spring MVC MongoDB 分頁(yè)例子下載
前段時(shí)間用spring mvc, spring data mongo, 做了一個(gè)集成的例子,唯一美中不足的是沒(méi)有分頁(yè)實(shí)現,作為實(shí)際的例子還是有所欠缺的,參考了網(wǎng)上其他一些文章,整理出了下面這個(gè)例子, 主要功能如下:
1.封裝了MongoDB 增刪改查的基類(lèi)
2.定義分頁(yè)實(shí)現
程序運行的效果如下, 本文最后提供源代碼下載
封裝了MongoDB 增刪改查的基類(lèi)
程序代碼
package com.yihaomen.common.mongodb;
import java.util.List;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.yihaomen.common.page.Pagination;
public abstract class MongodbBaseDao<T> {
/**
* 通過(guò)條件查詢(xún),查詢(xún)分頁(yè)結果
*
* @param pageNo
* @param pageSize
* @param query
* @return
*/
public Pagination<T> getPage(int pageNo, int pageSize, Query query) {
long totalCount = this.mongoTemplate.count(query, this.getEntityClass());
Pagination<T> page = new Pagination<T>(pageNo, pageSize, totalCount);
query.skip(page.getFirstResult());// skip相當于從那條記錄開(kāi)始
query.limit(pageSize);// 從skip開(kāi)始,取多少條記錄
List<T> datas = this.find(query);
page.setDatas(datas);
return page;
}
/**
* 通過(guò)條件查詢(xún)實(shí)體(集合)
*
* @param query
*/
public List<T> find(Query query) {
return mongoTemplate.find(query, this.getEntityClass());
}
/**
* 通過(guò)一定的條件查詢(xún)一個(gè)實(shí)體
*
* @param query
* @return
*/
public T findOne(Query query) {
return mongoTemplate.findOne(query, this.getEntityClass());
}
/**
* 查詢(xún)出所有數據
*
* @return
*/
public List<T> findAll() {
return this.mongoTemplate.findAll(getEntityClass());
}
/**
* 查詢(xún)并且修改記錄
*
* @param query
* @param update
* @return
*/
public T findAndModify(Query query, Update update) {
return this.mongoTemplate.findAndModify(query, update, this.getEntityClass());
}
/**
* 按條件查詢(xún),并且刪除記錄
*
* @param query
* @return
*/
public T findAndRemove(Query query) {
return this.mongoTemplate.findAndRemove(query, this.getEntityClass());
}
/**
* 通過(guò)條件查詢(xún)更新數據
*
* @param query
* @param update
* @return
*/
public void updateFirst(Query query, Update update) {
mongoTemplate.updateFirst(query, update, this.getEntityClass());
}
/**
* 保存一個(gè)對象到mongodb
*
* @param bean
* @return
*/
public T save(T bean) {
mongoTemplate.save(bean);
return bean;
}
/**
* 通過(guò)ID獲取記錄
*
* @param id
* @return
*/
public T findById(String id) {
return mongoTemplate.findById(id, this.getEntityClass());
}
/**
* 通過(guò)ID獲取記錄,并且指定了集合名(表的意思)
*
* @param id
* @param collectionName
*            集合名
* @return
*/
public T findById(String id, String collectionName) {
return mongoTemplate.findById(id, this.getEntityClass(), collectionName);
}
/**
* 獲取需要操作的實(shí)體類(lèi)class
*
* @return
*/
protected abstract Class<T> getEntityClass();
/**
* 注入mongodbTemplate
*
* @param mongoTemplate
*/
protected abstract void setMongoTemplate(MongoTemplate mongoTemplate);
/**
* spring mongodb 集成操作類(lèi)
*/
protected MongoTemplate mongoTemplate;
}
2. 2.定義分頁(yè)實(shí)現
程序代碼
package com.yihaomen.common.page;
import java.util.List;
public class Pagination<T> {
/**
* 一頁(yè)數據默認20條
*/
private int pageSize = 20;
/**
* 當前頁(yè)碼
*/
private int pageNo;
/**
* 上一頁(yè)
*/
private int upPage;
/**
* 下一頁(yè)
*/
private int nextPage;
/**
* 一共有多少條數據
*/
private long totalCount;
/**
* 一共有多少頁(yè)
*/
private int totalPage;
/**
* 數據集合
*/
private List<T> datas;
/**
* 分頁(yè)的url
*/
private String pageUrl;
/**
* 獲取第一條記錄位置
*
* @return
*/
public int getFirstResult() {
return (this.getPageNo() - 1) * this.getPageSize();
}
/**
* 獲取最后記錄位置
*
* @return
*/
public int getLastResult() {
return this.getPageNo() * this.getPageSize();
}
/**
* 計算一共多少頁(yè)
*/
public void setTotalPage() {
this.totalPage = (int) ((this.totalCount % this.pageSize > 0) ? (this.totalCount / this.pageSize + 1)
: this.totalCount / this.pageSize);
}
/**
* 設置 上一頁(yè)
*/
public void setUpPage() {
this.upPage = (this.pageNo > 1) ? this.pageNo - 1 : this.pageNo;
}
/**
* 設置下一頁(yè)
*/
public void setNextPage() {
this.nextPage = (this.pageNo == this.totalPage) ? this.pageNo : this.pageNo + 1;
}
public int getNextPage() {
return nextPage;
}
public int getTotalPage() {
return totalPage;
}
public int getUpPage() {
return upPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount2) {
this.totalCount = totalCount2;
}
public List<T> getDatas() {
return datas;
}
public void setDatas(List<T> datas) {
this.datas = datas;
}
public String getPageUrl() {
return pageUrl;
}
public void setPageUrl(String pageUrl) {
this.pageUrl = pageUrl;
}
public Pagination(int pageNo, int pageSize, long totalCount2) {
this.setPageNo(pageNo);
this.setPageSize(pageSize);
this.setTotalCount(totalCount2);
this.init();
}
/**
* 初始化計算分頁(yè)
*/
private void init() {
this.setTotalPage();// 設置一共頁(yè)數
this.setUpPage();// 設置上一頁(yè)
this.setNextPage();// 設置下一頁(yè)
}
}
配置MongodbTemplate 來(lái)操作數據庫
這是在spring 的配置文件中配置的
程序代碼
<mongo:mongo host="localhost" port="27017"/>
<!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="yihaomen"/>
</bean>
運行程序,首先生成幾百條數據,然后在測試分頁(yè) :
啟動(dòng)芒果數據庫,然后在shell 中查看數據.
剩下的配置,都在源代碼中,可以參考源代碼, 源代碼所需要的 jar 包,如同這里一樣: Spring MVC 與 MongoDB 結合例子
程序代碼下載:
spring  mvc mongodb pagination sample download
除非申明,文章均為一號門(mén)原創(chuàng ),轉載請注明本文地址,謝謝!
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于Hbernate的通用泛型Dao
HibernatePage.java
Spring Data MongoDB 五:進(jìn)階文檔查詢(xún)(分頁(yè)、Morphia)(二)
mongodb 3.2 實(shí)戰(三)整合Spring Data MongoDB
lucene高亮問(wèn)題
自己寫(xiě)的查詢(xún)底層方法:查詢(xún)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久