成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

Spring Boot之搞定mongoTemplate的知識小結

瀏覽:163日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲精品国产a| 欧美综合色免费| 色哟哟精品一区| 一区二区三区丝袜| 亚洲国产精品第一区二区三区| 久久久久国产成人精品亚洲午夜| 国产成人综合精品三级| 欧美日韩精品欧美日韩精品一综合| 午夜久久久久久久久久一区二区| 国产欧美二区| 一区二区三区在线播| 亚洲国产精品一区二区第一页 | 久久9热精品视频| 性伦欧美刺激片在线观看| 亚洲一区免费视频| 久久av一区二区三区| 日韩专区一卡二卡| 在线国产电影不卡| 久久99国产精品免费网站| 色哦色哦哦色天天综合| 美国欧美日韩国产在线播放| 欧美丝袜丝交足nylons| 国产一区二区三区在线观看免费| 日韩欧美在线影院| 99久久er热在这里只有精品66| www欧美成人18+| 北条麻妃一区二区三区| 精品久久久久久无| 91丨九色丨国产丨porny| 久久久久久久久久久久久久久99| 91亚洲精品一区二区乱码| 国产精品全国免费观看高清| 精品福利电影| 亚洲精品国产a| 久久亚洲不卡| 精品一区二区三区免费观看| 日韩精品中文字幕在线不卡尤物| 91视频在线观看免费| 国产精品久久久久久久蜜臀| 亚洲啪啪91| 亚洲成人高清在线| 欧美日韩综合在线免费观看| 高潮精品一区videoshd| 国产人久久人人人人爽| 亚洲国内自拍| 日本午夜精品一区二区三区电影| 欧美顶级少妇做爰| 色综合天天做天天爱| 一区二区三区在线观看网站| 欧美在线不卡视频| 成人激情免费网站| 国产精品初高中害羞小美女文| 国产精品一区亚洲| 国产麻豆午夜三级精品| 国产调教视频一区| 国产精品久久一区二区三区| 午夜伊人狠狠久久| 欧美视频一区二区三区| av成人动漫在线观看| 亚洲欧美偷拍三级| 91久久精品一区二区三区| 国产成人综合精品三级| 国产精品理论片| 亚洲尤物在线| 国产成人综合亚洲91猫咪| 国产精品毛片久久久久久久| 色婷婷综合久久久久中文一区二区| 国产99精品国产| 依依成人综合视频| 6080亚洲精品一区二区| 欧美96在线丨欧| 亚洲成av人片在线观看无码| 欧美日韩精品欧美日韩精品一| 91美女精品福利| 性欧美疯狂xxxxbbbb| 欧美大片在线观看一区二区| 99精品免费| 国产精品99久久久久久宅男| 亚洲欧洲日韩在线| 欧美日韩在线三级| 好吊色欧美一区二区三区四区| 三级久久三级久久| xf在线a精品一区二区视频网站| 国产精品乱看| 成人性生交大合| 亚洲一区二区三区四区不卡| 91精品国产福利| 亚洲激情偷拍| 精品一区二区日韩| 日韩一区在线免费观看| 欧美三日本三级三级在线播放| 色综合色狠狠天天综合色| 日韩福利电影在线| 日本一区二区三区久久久久久久久不| 午夜在线播放视频欧美| 成人激情免费电影网址| 亚洲国产毛片aaaaa无费看 | 亚洲精品免费一二三区| 在线免费不卡电影| 欧美视频亚洲视频| 国产在线国偷精品产拍免费yy| 中文字幕一区日韩精品欧美| 91精品国产色综合久久不卡蜜臀| 亚洲三级影院| 国产高清成人在线| 亚洲va欧美va天堂v国产综合| 久久久久久免费| 欧美视频一区二区三区在线观看| 亚洲高清资源| 成人美女视频在线观看18| 婷婷开心激情综合| 亚洲国产精品高清| 欧美性大战久久久久久久蜜臀| 在线免费高清一区二区三区| 成人性生交大片免费看在线播放| 日韩激情中文字幕| 国产精品国产自产拍高清av| 欧美一级二级在线观看| 久久综合婷婷| 一区精品久久| 成人精品免费网站| 久久av老司机精品网站导航| 一区二区三区在线免费观看| 国产女人aaa级久久久级| 欧美一区二区视频在线观看2022| 亚洲欧美日韩综合一区| 亚洲无吗在线| 国产ts人妖一区二区| 日韩av电影天堂| 伊人色综合久久天天| 欧美国产日韩亚洲一区| 日韩欧美一级在线播放| 欧美日韩一卡二卡| 日本精品免费观看高清观看| 99视频精品| 亚洲小说欧美另类婷婷| 99久久精品99国产精品 | 大白屁股一区二区视频| 美女在线观看视频一区二区| 一级精品视频在线观看宜春院| 国产精品网站一区| 国产性天天综合网| 亚洲精品在线电影| 欧美一区二区三区四区久久| 欧美久久一区二区| 欧美性猛交xxxx乱大交退制版| 国产免费成人| 日韩一区二区久久| 亚洲天堂黄色| 欧美午夜视频在线| 欧美婷婷在线| 欧美日韩一区二区三区免费| 97精品国产露脸对白| av不卡一区二区三区| 成人高清视频免费观看| 国产精品一区免费在线观看| 精彩视频一区二区三区| 男女激情视频一区| 亚洲成人av免费| 亚洲午夜精品网| 亚洲国产精品久久不卡毛片| 亚洲国产精品嫩草影院| 亚洲成人动漫精品| 日韩精品一二区| 日韩成人av影视| 美女网站色91| 激情图区综合网| 国产精品1024久久| 成人性色生活片免费看爆迷你毛片| 懂色一区二区三区免费观看| 国产成人99久久亚洲综合精品| 国产精品一二三区| 国产91综合网| 不卡电影一区二区三区| 91免费视频观看| 色综合天天综合网国产成人综合天| 欧美日韩亚洲国产精品| 在线成人h网| 亚洲精品美女| 亚洲一区高清| 91国模大尺度私拍在线视频| 欧美性xxxxxxxx| 欧美一区二区视频观看视频| 欧美一区二区精品在线| 日韩欧美资源站| 欧美成人精品3d动漫h| 久久先锋影音av鲁色资源网| 国产女人aaa级久久久级| 亚洲色图一区二区| 一级特黄大欧美久久久| 日韩电影网1区2区| 国内一区二区在线| 国产91高潮流白浆在线麻豆 | 欧美日韩亚洲一区| 999亚洲国产精| 久久精品综合一区| 欧美性猛交xxxxxx富婆| 日韩女优av电影| 久久精品在线免费观看| 最新不卡av在线|