日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Boot之搞定mongoTemplate的知識小結

瀏覽:188日期:2023-07-28 15:21:25

最近開發一些MongoDB+Spring Boot的項目,發現相較于MyBatis來說,Spring Boot對于MongoDB進行操作變化更多,所以總結一下使用mongoTemplate庫的知識點,以備以后查閱方便。

首先在項目中的pom.xml配置文件中添加如下依賴:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

在需要引入mongoTemplate對象的Service文件中添加該對象即可,如下所示:

public class JobService { // 引入mongoTemplate對象 @Autowired MongoTemplate mongoTemplate;

針對CURD操作,常用的API方法有如下4類:

更新: save()。 查詢: findAll()、find()、findOne()。 更新操作:update()。 刪除操作: remove()。

下面以一個實際的CRUD例子來講解具體用法,在注釋中會給出語法。先還是創建一個數據類,假設我們是對武俠劍客數據進行操作,POJO對象的定義代碼如下所示。

/** * 武俠劍客類 */@Data@NoArgsConstructor@AllArgsConstructor@Document(collection = 'my_sworders')public class MySworder implements Serializable { // 劍客的ID @Id private String id; // 姓名 @Field private String name; // 生平描述 @Field private String description; // 絕招 @Field private String skill; // 創建時間 @Field private int created;}

其中特別注意的是,@Document是mongodb驅動庫提供設置操作的文檔集合名稱的注解,這里設置集合為my_sworders。然后針對這個劍客類編寫一個Service文件,命名為SworderService.java:

@Servicepublic class SworderService { @Autowired MongoTemplate mongoTemplate; /** * 添加一個劍客 * @param mySworder * @return */ public boolean add(MySworder mySworder) { long unixTime = System.currentTimeMillis() / 1000L; int nowUnixTime = (int) unixTime; mySworder.setCreated(nowUnixTime); /** * 語法:<T> T mongoTemplate.save(T objectToSave) * save方法用于保存數據對象,傳遞定義好的JavaBean即可,被保存的數據對象會作為返回值被返回。 * 類似地,使用insert也可以達到保存數據的作用。 */ MySworder obj = mongoTemplate.save(mySworder); if (obj.getId() > 0) { return true; } else { return false; } } /** * 獲取所有劍客數據 * @return */ public List<MySworder> findAll() { /** * 語法:<T> List<T> findAll(Class<T> entityClass) * finAll會返回所有entityClass對應的數據集合的數據,相當于MySQL中select * from xxx_table_name。 */ return mongoTemplate.findAll(MySworder.class); } public boolean update(MySworder mySworder) { // 創建查詢對象 Query query = Query.query(Criteria.where('id').is(mySworder.getId())); Update update = new Update(); update.set('name', mySworder.getName()); update.set('description', mySworder.getDescription()); update.set('skill', mySworder.getSkill()); /** * 語法:public UpdateResult updateFirst(Query query, UpdateDefinition update, Class<?> entityClass) * updateFirst用于更新第一個被匹配的數據,query參數是查詢條件對象,update是需要更新的數據對象,entityClass就是對應的JavaBean對象(文檔集合類) */ UpdateResult updateResult = mongoTemplate.updateFirst(query, update, MyArticle.class); if (updateResult.getModifiedCount() > 0) { return true; } else { return false; } } public boolean updateBatchByKeyWords(String searchKey,String replaceString) { // 創建模糊查詢對象 Pattern pattern = Pattern.compile('^.*' + searchKey + '.*$', Pattern.CASE_INSENSITIVE); Criteria criteria = Criteria.where('description').regex(pattern); Update update = new Update(); update.set('description', replaceString); Query query = new Query(); query.addCriteria(criteria); /** * 語法:public UpdateResult updateMulti(Query query, UpdateDefinition update, Class<?> entityClass) * updateMulti用于所有被匹配的數據,query參數是查詢條件對象,update是需要更新的數據對象,entityClass就是對應的JavaBean對象(文檔集合類) */ UpdateResult updateResult = mongoTemplate.updateMulti(query, update, MySworder.class); if (updateResult.getModifiedCount() > 0) { return true; } else { return false; } } public boolean delete(String id) { MySworder mySworder = new MySworder(); mySworder.setId(id); /** * 語法: DeleteResult remove(Object object) * 該方法用于刪除數據,一般都是傳遞一個主鍵ID即可 */ DeleteResult deleteResult = mongoTemplate.remove(mySworder); if (deleteResult.getDeletedCount() > 0) { return true; } else { return false; } } public MySworder details(String id) { Query query = Query.query(Criteria.where('id').is(id)); /*** <T> T findOne(Query query, Class<T> entityClass)** findOne就是根據查詢條件(query)獲取一條數據。*/ return mongoTemplate.findOne(query, MySworder.class); }}

其中模糊查詢是使用了regex方法,并使用匹配Pattern對象來保存需要被匹配的字符串。

如果是多條件查詢,則需要使用Query對象來保存多個查詢條件,具體代碼如下:

// 用于存儲條件對象Query query = new Query();Criteria nameCriteria = Criteria.where('name').is(loginUser.getName());Criteria passwordCriteria = Criteria.where('password').is(loginUser.getPassword());query.addCriteria(nameCriteria);query.addCriteria(passwordCriteria);MyUser hasUser = mongoTemplate.findOne(query, MyUser.class);Integer userId = hasUser.getId();

如果查詢條件很多,那么這個addCriteria的代碼段就會很長,這個時候就考慮自己再封裝一個工具類,把循環查詢條件和一些復雜查詢的過程給封裝成一個方法,這樣事半功倍。

到此這篇關于Spring Boot之搞定mongoTemplate的知識小結的文章就介紹到這了,更多相關Spring Boot搞定mongoTemplate內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日产精品_国产精品毛片 | 欧美一区影院| 免费在线观看视频一区| 国产视频欧美| 蜜桃视频第一区免费观看| 久久久精品日韩| 亚洲综合在线电影| 成人午夜国产| 99精品电影| 在线国产一区| 亚洲欧美网站| 综合一区av| 欧美一级二级三级视频| 国产精品一区二区中文字幕| 精品一区二区三区的国产在线观看 | av亚洲一区二区三区| 日韩不卡免费高清视频| 久久久久.com| 久久亚洲精品伦理| 日韩午夜视频在线| 国产激情欧美| 日韩在线不卡| 亚洲特级毛片| 免费人成黄页网站在线一区二区| 日韩精品一区二区三区中文| 国产精品.xx视频.xxtv| 中文字幕在线看片| 99香蕉国产精品偷在线观看| 亚洲欧洲免费| 欧美激情亚洲| 日韩三区在线| 蜜臀av国产精品久久久久| 欧美日韩国产一区二区在线观看| 欧美激情一区| 午夜欧美在线| 国产亚洲欧美日韩精品一区二区三区 | 久久婷婷亚洲| 日韩在线卡一卡二| 91成人小视频| 日韩成人三级| 亚洲日本免费电影| 欧美国产偷国产精品三区| 欧美在线资源| 欧美三级第一页| 日韩欧美精品一区| 中文字幕av一区二区三区人| 精品视频网站| 99热精品在线| 蜜桃精品视频| 亚洲深爱激情| 久久精品国产成人一区二区三区| 久久免费高清| 日韩精品视频一区二区三区| 免费福利视频一区二区三区| 亚洲久草在线| 日韩国产激情| 国产欧美一区二区色老头| 日韩精品午夜| 国产视频一区二| 国产综合色产| 国产精品久久乐| 黄色精品网站| 国内一区二区三区| 伊人www22综合色| 日韩欧美看国产| 日韩高清在线一区| 亚洲精品在线影院| 911亚洲精品| 久久中文字幕av| 国产日韩欧美一区在线| 亚洲国产一区二区在线观看 | 久久久久久亚洲精品美女| 在线看片不卡| 精品淫伦v久久水蜜桃| 丝袜美腿亚洲一区二区图片| 91免费精品| 国产精品一区免费在线| 免费在线视频一区| 亚洲国产专区校园欧美| 日韩av资源网| 激情综合网站| 狠狠久久伊人中文字幕| 亚洲人成亚洲精品| 欧美肉体xxxx裸体137大胆| 国产欧美日韩综合一区在线播放| 国产在线日韩| 日韩久久电影| 国产伦理一区| 综合一区二区三区| 免费久久久久久久久| 久久婷婷国产| 欧美日韩一区二区三区不卡视频| 精品一区欧美| 亚洲黄色免费看| 亚洲精品少妇| 国产精品美女久久久| 久久久久99| 精品国产乱码久久久久久樱花| 综合亚洲自拍| 亚洲国产日韩欧美在线| 日韩综合精品| 水蜜桃精品av一区二区| 国产精品亚洲二区| 亚洲精品国产精品粉嫩| 久久精品国产www456c0m| 福利一区在线| 国产一区丝袜| 鲁大师精品99久久久| 久久激情五月激情| 国产午夜久久| 美女少妇全过程你懂的久久| 久久久精品网| 青青久久av| 日韩免费一区| 免费看av不卡| 国产伦久视频在线观看| 黄色网一区二区| 精品视频国产| 国产情侣一区在线| 久久国产尿小便嘘嘘| 日韩国产高清在线| 日韩精品a在线观看91| 麻豆精品网站| 石原莉奈在线亚洲三区| 国产一区清纯| 欧美成人午夜| av不卡免费看| 国产精品丝袜xxxxxxx| 日韩午夜免费| 伊人久久亚洲美女图片| 欧美成人日韩| 五月天激情综合网| 午夜精品免费| 国产午夜久久| 免费黄网站欧美| 亚洲深深色噜噜狠狠爱网站 | 日韩精品欧美大片| 日本午夜精品一区二区三区电影| 日韩 欧美一区二区三区| 亚洲精品乱码| 青草国产精品久久久久久| 日本午夜精品久久久| 国产伦理一区| 高清日韩欧美| 国内精品99| 午夜一区在线| 蜜臀国产一区二区三区在线播放| 免费在线观看精品| 日韩av午夜在线观看| 欧美成人精品午夜一区二区| 精品久久亚洲| 福利在线一区| 欧美精品自拍| 日韩超碰人人爽人人做人人添| 国产午夜一区| 日韩成人精品一区| 久久久五月天| 国产精品毛片| 91成人在线网站| 精品三级久久久| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩国产在线观看一区| 美女久久久久久 | 五月天久久网站| 亚洲精品欧美| 久久久久97| 激情欧美一区| 亚洲免费专区| 久久精品一本| 欧美影院三区| 夜久久久久久| 日韩va欧美va亚洲va久久| 欧美激情福利| 91精品蜜臀一区二区三区在线| 日韩视频二区| 欧美日韩亚洲一区| 欧美男人天堂| 亚洲综合五月| 久久久久久久欧美精品| 亚洲天堂黄色| 国产欧美一区二区精品久久久 | 毛片不卡一区二区| 欧美日韩国产探花| 欧美三区不卡| 亚洲婷婷免费| 国产探花一区| 亚洲婷婷免费| 国产精品久久久久久模特| 欧美aa在线观看| 蜜桃一区二区三区在线| 久久精品午夜| 蜜桃tv一区二区三区| 久久国产视频网| 图片区亚洲欧美小说区| 欧美天堂一区| 红桃视频欧美| 精品视频97| 亚洲日本欧美| 久久久久国产一区二区| 日韩精品成人|