springdata开发MongoDB示例

springdata框架

使用IDEA初始化springboot+springdata框架,开发mongodb示例,pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demomongodb</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demomongodb</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

主要实现思路

Mongotemplate

首先创建一个实体,用来对应mongodb中的文档

  1 //@Document(collection = "test_stock")
  2 @Document
  3 public class Stock {
  4
  5     private String id;
  6     private String ts_code;
  7     private String trade_date;
  8     private float open;
  9     private float high;
 10     private float low;
 11     private float close;
 12     private float pre_close;
 13     private float change;
 14     private float pct_chg;
 15     private Long vol;
 16     private float amount;
 17
 18     public Stock() {
 19     }
 20
 21     public String getId() {
 22         return id;
 23     }
 24
 25     public void setId(String id) {
 26         this.id = id;
 27     }
 28
 29     public String getTs_code() {
 30         return ts_code;
 31     }
 32
 33     public void setTs_code(String ts_code) {
 34         this.ts_code = ts_code;
 35     }
 36
 37     public String getTrade_date() {
 38         return trade_date;
 39     }
 40
 41     public void setTrade_date(String trade_date) {
 42         this.trade_date = trade_date;
 43     }
 44
 45     public float getOpen() {
 46         return open;
 47     }
 48
 49     public void setOpen(float open) {
 50         this.open = open;
 51     }
 52
 53     public float getHigh() {
 54         return high;
 55     }
 56
 57     public void setHigh(float high) {
 58         this.high = high;
 59     }
 60
 61     public float getLow() {
 62         return low;
 63     }
 64
 65     public void setLow(float low) {
 66         this.low = low;
 67     }
 68
 69     public float getClose() {
 70         return close;
 71     }
 72
 73     public void setClose(float close) {
 74         this.close = close;
 75     }
 76
 77     public float getPre_close() {
 78         return pre_close;
 79     }
 80
 81     public void setPre_close(float pre_close) {
 82         this.pre_close = pre_close;
 83     }
 84
 85     public float getChange() {
 86         return change;
 87     }
 88
 89     public void setChange(float change) {
 90         this.change = change;
 91     }
 92
 93     public float getPct_chg() {
 94         return pct_chg;
 95     }
 96
 97     public void setPct_chg(float pct_chg) {
 98         this.pct_chg = pct_chg;
 99     }
100
101     public Long getVol() {
102         return vol;
103     }
104
105     public void setVol(Long vol) {
106         this.vol = vol;
107     }
108
109     public float getAmount() {
110         return amount;
111     }
112
113     public void setAmount(float amount) {
114         this.amount = amount;
115     }
116
117     @Override
118     public String toString() {
119         return "Stock{" +
120                 "id=‘" + id + ‘\‘‘ +
121                 ", ts_code=‘" + ts_code + ‘\‘‘ +
122                 ", trade_date=‘" + trade_date + ‘\‘‘ +
123                 ", open=" + open +
124                 ", high=" + high +
125                 ", low=" + low +
126                 ", close=" + close +
127                 ", pre_close=" + pre_close +
128                 ", change=" + change +
129                 ", pct_chg=" + pct_chg +
130                 ", vol=" + vol +
131                 ", amount=" + amount +
132                 ‘}‘;
133     }
134 }

其次,用使用mongotemplate的操作访问mongodb数据库,spring单元测试查询数据

 1 package com.example.demomongodb;
 2
 3 import com.example.demomongodb.dao.StockRepository;
 4 import com.example.demomongodb.document.Stock;
 5 import org.junit.Test;
 6 import org.junit.runner.RunWith;
 7 import org.slf4j.Logger;
 8 import org.slf4j.LoggerFactory;
 9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.boot.test.context.SpringBootTest;
11 import org.springframework.data.domain.Example;
12 import org.springframework.data.domain.Page;
13 import org.springframework.data.domain.PageRequest;
14 import org.springframework.data.domain.Sort;
15 import org.springframework.data.mongodb.core.MongoTemplate;
16 import org.springframework.data.mongodb.core.query.Criteria;
17 import org.springframework.data.mongodb.core.query.Query;
18 import org.springframework.test.context.junit4.SpringRunner;
19
20 import java.util.List;
21
22 @RunWith(SpringRunner.class)
23 @SpringBootTest
24 public class DemomongodbApplicationTests {
25     private static final String COLLECTION_NAME = "test_stock";
26
27     @Autowired
28     private StockRepository stockRepository;
29
30     @Autowired
31     private MongoTemplate mongoTemplate;
32
33     private static final Logger logger = LoggerFactory.getLogger(DemomongodbApplicationTests.class);
34
35     @Test
36     public void queryDemo() {
37         //add sort
38         Criteria criteria = Criteria.where("ts_code").is("600318.SH");
39         Query query = new Query(criteria);
40         List<Stock> results = mongoTemplate.find(query, Stock.class, COLLECTION_NAME);
41         for (Stock each:results) {
42             logger.info("each={}", each.toString());
43         }
44     }
45
46 }

对应的application.yml如下

1 spring:
2   data:
3     mongodb:
4       uri: mongodb://mydb:[email protected]:27017/mydb

代码github地址,欢迎star

https://github.com/xiaof-github/springdatamongodb

原文地址:https://www.cnblogs.com/beilong/p/11524217.html

时间: 2024-10-10 09:44:47

springdata开发MongoDB示例的相关文章

配送短信猫二次开发接口提供多种开发语言示例

免费配送的信猫二次开发接口提供有多种开发语言示例,如C#.C++.Delphi.PowerBuilder.VB.net.VC++.VisualBasic等多种开发示例方便程序开发人员开发调试.使用简单方便,将sms.dll文件拷贝到系统安装目录中的system32文件夹中,然后再根据以下接口函数说明和提供的例程源码开发,无需安装,免加密狗. 短信猫二次开发接口提供的开发语言示例有: 部分短信猫二次开发接口函数说明: 1.Sms_Connection(Com_Port As Integer,Com

SkylineGlobe Android 开发 面积计算示例代码

SkylineGlobe Android 开发 面积计算示例代码: 如果之前熟悉SkylineGlobe桌面端的二次开发,看这些代码应该不难理解. package com.skyline.terraexplorer.tools; import android.os.Handler; import android.os.Looper; import com.skyline.teapi.*; import com.skyline.teapi.ISGWorld.OnAnalysisProgressLi

Java开发Hbase示例

Java开发Hbase示例 使用Hbase操作数据 package com.sunteng.clickidc.test; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; impo

SpringData,JPA,MongoDB,Solr,Elasticsearch底层逻辑关系

一: Spring-data底层的接口路基: spring-data : PagingAndSortingRepository-> CrudRepository-> Repository ,它是springdatajpa,solr,mongoDB,Elasticsearch的核心基础. 有三个主要的接口: 1. Repository<T, ID> {}空接口 2.CrudRepository<T, ID>extends Repository<T, ID> 主

springdata整合mongodb一些方法包括or,and,regex等等《有待更新》

这几天接触mongodb以及springdata,自己英语比较戳,所以整理这些方法花的时间多了点,不过也是我第一次在外国网站整理技术 不多说,直接上代码,这里只是给出一些操作方法而已,如果有需要源码的,请Q我206314068,如转载请注明出处 1 package mongodbProject1; 2 3 import java.util.List; 4 5 import mg.pojo.User; 6 import mg.pojo.UserList; 7 import mg.service.U

Android学习笔记—Windows下NDK开发简单示例

该示例假设Android开发环境已经搭建完成,NDK也配置成功: 1.在Eclipse上新建Android工程,名称为ndkdemo.修改res\layout\activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo

开发MongoDB连接一定要关闭连接,异常中也一定要关

废不少工夫将数据存储,全部迁移至mongodb,未作大量改动则是主因. 但遇到奇怪的现象. 程序跑起不久后,mongodb即假死,另起客户端想登陆mongodb都不成. 要重启mongodb服务器才好转. 分析原因是mongodb的连接池满掉且不释放. 但从官网所了解的mongodb的连接是自行管理的,用完后自动释放,写几个demo测试,也完全符合这一点. 浪费了不少时间找这个问题的成因,并想办法作优化. 比如,设置windows的TCP连接数等等. 设置mongodb的连接数,等待时间等等.

API接口开发简述示例

作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的.API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞生很多专门API服务的公司,如:聚合数据(https://www.juhe.cn/).百度APIStore(http://apistore.baidu.com/) 先了解下 API :1.API 比开发 WEB 更简洁,但

应用Mongoose开发MongoDB(2)模型(models)

数据模型及基础操作模板 为了使工程结构清晰,将数据模型(Schema, Model)的建立与增删查改的基础操作模板写在一起,命名为数据库设计中的Collection(对应于关系型数据库中的表定义)名,并存储在models文件夹中. Schema与Model的建立: Schema是Mongoose里的数据模式,可以理解为表结构定义:每个Schema会映射到MongoDB中的一个Collection,不具备操作数据库的能力. 考虑以下代码: //引入mongoose模块 var mongoose =