当我启动mongoDB客户端应用程序Compass 1.13.1时,我收到如下错误: 
我怎么解决呢?同样的问题在这里.
尝试使用MongoDB 3.6 版通过 Java 驱动程序连接 Atlas 集群。
所以,我写的是:
 MongoClientURI uri = new MongoClientURI("mongodb+srv://admin:mypassword@cluster0-ox90k.mongodb.net/test?retryWrites=true");
 MongoClient mongoClient = new MongoClient(uri);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,错误是:
java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with 'mongodb://'
    at com.mongodb.ConnectionString.<init>(ConnectionString.java:203)
    at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:176)
    at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:158)
    at project.Bot.check(Bot.java:30)
    at project.Bot.onUpdateReceived(Bot.java:104)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.telegram.telegrambots.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27)
    at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:309)
Run Code Online (Sandbox Code Playgroud)
当程序以使用 MongoDB 3.6 或更高版本的代码段开始时,没有+srv:
MongoClientURI uri = new MongoClientURI("mongodb://admin1:mypassword@cluster0-ox90k.mongodb.net/test?retryWrites=true");
MongoClient mongoClient = new MongoClient(uri);
Run Code Online (Sandbox Code Playgroud)
com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码片段将一些文档插入到上限集合中:
            // get document with specific fields
            Document found = collection.find().first();
            String getTitle = (String) found.get("title");
            String getUrl = (String) found.get("url");
            String getImg = (String) found.get("img");
            String getPrice = (String) found.get("price");
            // document which I want to get as new
            Document doc = collection.find(new Document("title", getTitle)
                    .append("url", getUrl)
                    .append("img", getImg)
                    .append("price", getPrice)
                    .append("sent", true)).first();
            // if the document doesn't exist, then insert as new
            if (doc == null) {
             collection.insertOne(new Document("title", getTitle)
                   .append("url", getUrl)
                   .append("img", getImg)
                   .append("price", getPrice)
                   .append("sent", true)); …Run Code Online (Sandbox Code Playgroud) 我正在使用H2-Databaseand Spring Security,但无法在浏览器中打开它http://localhost:8080/h2-console
这是我的pom.xml(仅H2条目)
<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在这里我的application.properties
spring.datasource.url=jdbc:h2:file:/data/noNameDB
spring.h2.console.enabled=true
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=admin
spring.datasource.password=admin
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.path=/h2-console
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jackson.serialization.fail-on-empty-beans=false
Run Code Online (Sandbox Code Playgroud)
这是我的SecurityConfig.java
import com.example.noName.security.JwtAuthenticationEntryPoint;
import com.example.noName.security.JwtAuthenticationFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    private static final String[] AUTH_WHITE_LIST = {
            "/v3/api-docs/**",
            "/swagger-ui/**",
            "/v2/api-docs/**",
            "/swagger-resources/**",
            "/h2-console/**",
            "/console/**",
            "/account/**"
    }; …Run Code Online (Sandbox Code Playgroud) 使用 mongo 的新3.0+ java 驱动程序检查文档是否存在于集合中的最佳方法是什么。
我看过这里并尝试做类似的事情。我只做到了这一点:
FindIterable<Document> iterable = collection.find(eq("code", "abcdefg")).projection(Projections.include("_id")).limit(1);
Run Code Online (Sandbox Code Playgroud)
这会返回一个 FindIterable 但你如何检查它是否找到了任何东西?如果可以请提供代码示例。
我确实尝试过:
if (!iterable.first().isEmpty()){System.out.println(" RESILT IS FOUND ");}else{System.out.println(" RESULT IS NOT FOUND ");}
Run Code Online (Sandbox Code Playgroud)
但是当查询没有返回任何内容时,它会因以下错误而终止:
Exception in thread "main" java.lang.NullPointerException
    at com.oss.niagaramqtt.MongoLib.exists(MongoLib.java:58)
    at com.oss.niagaramqtt.MongoLib.<init>(MongoLib.java:47)
    at com.oss.niagaramqtt.startup.main(startup.java:24)
Run Code Online (Sandbox Code Playgroud)
这确实是检查文档是否存在的正确方法吗?
编辑: 这可能是答案,请确认:
MongoCursor<Document> iterable = collection.find(eq("code", "abcdefg")).projection(Projections.include("_id")).limit(1).iterator();                
if (iterable.hasNext()){System.out.println(" RESILT IS FOUND ");}else{System.out.println(" RESULT IS NOT FOUND ");}
Run Code Online (Sandbox Code Playgroud) 我正在研究 Spring over Hibernate 项目,但我才刚刚开始。我正在尝试使用 SpringBootApplication 向 MsSql 写入一些 LogEntries 对象。我有一些不同的包:
这是课程:
LogEntryFacadeImpl.class :
package com.tradingSystem.dataAccess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.tradingSystem.entity.LogEntry;
@Service
public class LogEntryFacadeImpl implements LogEntryFacade{
    @Autowired
    private LogEntryDAO logEntryDao;
    @Transactional
    @Override
    public Long addLogEntry(LogEntry log) {
        return this.logEntryDao.save(log).getId();
    }
    @Override
    public LogEntry getLogEntry(Long logId) {
        return this.logEntryDao.findOne(logId);
    }
}
Run Code Online (Sandbox Code Playgroud)
LogEntryDAO.类:
package com.tradingSystem.dataAccess;
import org.springframework.data.jpa.repository.JpaRepository;
import com.tradingSystem.entity.LogEntry;
public interface LogEntryDAO extends JpaRepository<LogEntry, Long> {
}
Run Code Online (Sandbox Code Playgroud)
我使用这个类作为测试器:
测试应用程序.类:
package com.testings;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import …Run Code Online (Sandbox Code Playgroud) 我的集合中的文档结构如下:
{
  "_id" : ObjectId("569190cd24de1e0ce2dfcd62"),
  "title" : "Star Trek II: The Wrath of Khan",
  "year" : 1982,
  "rated" : "PG",
  "released" : ISODate("1982-06-04T04:00:00Z"),
  "runtime" : 113,
  "countries" : [
    "USA"
  ],
  "awards" : {
    "wins" : 2,
    "nominations" : 9,
    "text" : "2 wins & 9 nominations."
  }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用投影并添加几个附加参数来获取特定字段的内容。我想采用以下键:title、year和rated以及awards指定的值。(并_id删除)
我这样写是db.movieDetails.find( {}, {title: 1, year: 2013, rated: "PG-13", _id: 0, "awards.wins": 1 }).pretty()为了获取带有值的字段,但控制台显示不同的参数:
{
   "title" : "Star Trek …Run Code Online (Sandbox Code Playgroud) 当尝试使用现有条件复制计数的 Critria 构建器时。在 Hibernate 6 中似乎出现以下错误,但在 Hibernate 5 中似乎同样有效。
引起原因:java.lang.IllegalArgumentException:已经注册了一个副本:
SqmBasicValuedSimplePath(com.example.domain.Test(175781908930100).name)
Run Code Online (Sandbox Code Playgroud)
添加完整代码。
public static <Q, R> Page<Q> getResultsPage(final EntityManager entityManager, final CriteriaQuery<Q> criteria, final Root<R> root, final Pageable pageable,
            final List<Order> defaultOrderList) {
        return PageableExecutionUtils.getPage(getResultList(entityManager, criteria, root, pageable, defaultOrderList), pageable, () -> count(entityManager, criteria));
    }
public static <Q, R> List<Q> getResultList(final EntityManager entityManager, final CriteriaQuery<Q> criteria, final Root<R> root, final Pageable pageable,
            final List<Order> defaultOrderList) {
        CriteriaUtils.setOrderBy(entityManager, criteria, root, pageable, defaultOrderList);
        TypedQuery<Q> resultQuery = entityManager.createQuery(criteria);
        if (Objects.nonNull(pageable) && pageable.isPaged()) { …Run Code Online (Sandbox Code Playgroud) 我使用 spring boot 和 JOOQ 创建了一个简单的项目,添加了依赖项“spring-boot-starter-jooq”。当我编译时,应用程序无法启动。
这是 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.bingo</groupId>
    <artifactId>api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>api</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jooq</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </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>
        <dependency>
            <groupId>org.hashids</groupId>
            <artifactId>hashids</artifactId>
            <version>1.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin> …Run Code Online (Sandbox Code Playgroud) 我假设需要额外的依赖项,但我不明白到底是什么。我感谢大家的帮助。
我的pom文件是:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.spark</groupId>
    <artifactId>spark</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <name>M101J</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>com.sparkjava</groupId>
            <artifactId>spark-core</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>Spark repository</id>
            <url>http://sparkjava.com/nexus/content/repositories/spark/</url>
        </repository>
    </repositories>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.spark.SparkHomework</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用命令运行我的项目时:
mvn compile exec:java -Dexec.mainClass=com.spark.SparkHomework
Run Code Online (Sandbox Code Playgroud)
我有这样的问题:
未知的生命周期阶段“.mainClass=com.spark.SparkHomework”。您必须以 : 或 :[:]: 格式指定有效的生命周期阶段或目标。可用的生命周期阶段有:验证、初始化、生成源、处理源、生成资源、处理资源、编译、处理类、生成测试源、处理测试源、生成测试资源、处理-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, …
我有程序使用显式类来排序值:
class CompLastNames implements Comparator<String> {
    public int compare(String aStr, String bStr) {
        int i, j;
        i = aStr.lastIndexOf(' ');
        j = bStr.lastIndexOf(' ');
        return aStr.substring(i).compareToIgnoreCase(bStr.substring(j));
    }
}
class CompThenByFirstName implements Comparator<String> {
    public int compare(String aStr, String bStr) {
        int i, j;
        return aStr.compareToIgnoreCase(bStr);
    }
}
public class TreeMapDemo2A {
    public static void main(String[] args) {
        CompLastNames compLN = new CompLastNames();
        Comparator<String> compLastThenFirst = 
                compLN.thenComparing(new CompThenByFirstName());
        TreeMap<String, Double> tm = 
                new TreeMap<String, Double>(compLastThenFirst);
...
Run Code Online (Sandbox Code Playgroud)
得到结果:
Jane Baker: 1378.0 …Run Code Online (Sandbox Code Playgroud) java ×10
mongodb ×5
spring-boot ×3
hibernate ×2
spring ×2
comparator ×1
gradle ×1
h2 ×1
java-17 ×1
jooq ×1
lambda ×1
maven ×1
powershell ×1