springmongodb(Spring MongoDb用事务管理器提交事务与回滚事务)
本篇文章给大家谈谈springmongodb,以及Spring MongoDb用事务管理器提交事务与回滚事务对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
spring连接MongoDB报错XXX, password=<hidden>
SpringBoot在yaml中配置MongDB:
报亮雹错提示密码password= hidden 没用输入,账号admin,123456在xshell和naviate都能正常进入。
正确配置:
密码需要用单引号引入才行配源。培键态
[img]SpringBoot整合MongoDB实战
MongoTemplate配置
一般情况下,按照如下配置,springboot会进行自动装配,但是如果需要实现一些自定义的功能,例如密码加解密,类型转换等功能需要手写配置MongoTemplate。
@EnableMongoRepositories()表示支持Spring JPA,即通过规范命名的接口来实现简单的DB操作,不需要自己写Query,可以通过该注解的value属性来指定注解的作用范围。
ReUtil是一个正则表达式的工具类,用于判断配置文件的格式是否正确核闹,配置MongoDatabaseFactory过程中实现一个比较简单的配置文件解密的过程,解密方法用简单的字符串翻转来实现。
通过MappingMongoConverter来实现java中的对象与MongoDB中的Document进行一些复杂的映射,默认情况下一个java域对象存入MongoDB时会生成一个"_class"的key对应存储Java对象类型,通过
来取消每条记录生成一个"-class"的数据。
通过MappingMongoConverter实现一个简单的时间转化功能TimestampConverter,如下所示
还可以进行更加精细化的配置,例如
可以通过WritingConverter和ReadingConverter配置Document和Java对象相互转化。
MongoTemplate实战
例如一个博客系统,我们通过MongoDB存储用户的浏览记录,浏览记录的实体如下所示,
如上所示,每个人对应每篇文章有一条浏览记录,每次访问都会对访问次数viewCount进行+1操作.下文针对这个场景介绍MongoTemplate的基本操作。
这些操作用法基本一样,如下所示,传入一个封装查询条件的对象Query,Java中映射的对象entityClass和MongoDB中对应的Document的名称。
例如我们想要查询某个用户某篇博客的访问次数,我们只需要通过博客id和访问者构建查询条件进行查询即可。
findAndModify表示更新符合查询条件的记录,其方法如下所示,
Query封装查询条件,Update封装的是更新内容。例如用户每次刷新页面浏览次数会+1操作,我们可以使用findAndModify操作,如下所示
如上所示,首先判断用户是否存在访问记录,如果存在则通过Update对访问次数viewCount进行+1操作,若不存在访问记录则新建访问记录。
保存操改宽罩作包括主要包括insert和save方法,这两个方法都没有返回值,同时两个方法有一些区别,
该方法如下所示,
注释说明该方法的功能是,如果存在与查询条件匹配的文档,则根据Update中的内容进行更新,如果不存在符合查询条件的内容,则根据查询条件和Update插入新的文档。
聚合查询 MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。本文侧重于Java实现。
结合上述中的访问记录的场景,如果我们需要统计某个博主某个专栏下面所有文章的访问记录,包括访问巧陪总人数,访问总次数,以及每个访客对应的访问次数详情,并且要满足分页需求,那么我们需要用到MongoDB的聚合操作,具体实现如下所示
总结
本文详细介绍了SpringBoot如何整合MongoDB,并且结合博客系统的访问记录展示了MongoTemplate的基本用法。
springboot怎么连接mongodb的
springboot连接mongodb方法:
pom.xml
project xmlns="肢余陆" xmlns:xsi=""
xsi:schemaLocation=" "
modelVersion4.0.0/modelVersion
groupIdcom.example/groupId
artifactIdmyproject/artifactId
version0.0.1-SNAPSHOT/version
packagingjar/packaging
namemyproject/name
url;/url
!-- 要继承的项目 --
parent
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-parent/artifactId
version1.2.7.RELEASE/version
/parent
properties
project.build.sourceEncodingUTF-8/project.build.sourceEncoding
/properties
dependencies
dependency
groupIdjunit/groupId
artifactIdjunit/artifactId
scopetest/scope
/dependency
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-web/artifactId
exclusions
exclusion
artifactIdlog4j-over-slf4j/artifactId
groupIdorg.slf4j/groupId
/exclusion
/exclusions
/dependency
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-data-MongoDB/artifactId
/dependency
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-log4j/artifactId
/dependency
/dependencies毁绝
build
plugins
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
/plugin
/plugins
/build
repositories
repository
idspring-snapshots历顷/id
url;/url
snapshots
enabledtrue/enabled
/snapshots
/repository
repository
idspring-milestones/id
url;/url
/repository
/repositories
/project
package com.example.myproject.dao;
import Java.util.List;
import com.mongodb.DBObject;
public interface UserDao {
long count();
ListDBObject find();
}
package com.example.myproject.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.example.myproject.dao.UserDao;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
@Repository
public class UserDaoImpl implements UserDao{
@Autowired
MongoClient client;
DBCollection dbCollection;
//初始化方法
@PostConstruct
public void init(){
DB db = client.getDB("test");
dbCollection = db.getCollection("users");
}
public long count() {
return dbCollection.count();
}
public ListDBObject find(){
DBCursor it = dbCollection.find();
ListDBObject result=new ArrayListDBObject();
while(it.hasNext()){
DBObject object = it.next();
result.add(object);
}
return result;
}
}
测试类:
@RestController
@EnableAutoConfiguration
@ComponentScan
public class Example {
@Autowired
ConnectionSettings connection;
@Autowired
UserDaoImpl userDao;
private Logger logger = Logger.getLogger(Example.class);
@RequestMapping("/")
String home() throws UnknownHostException {
long count = userDao.count();
System.out.println(count);
ListDBObject find = userDao.find();
for(int i=0;ifind.size();i++){
DBObject DBObject = find.get(i);
System.out.println(DBObject);
}
logger.info(connection.getName() + "--" + connection.getAge());
return connection.getName() + connection.getAge() + connection.getSex();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
关于springmongodb和Spring MongoDb用事务管理器提交事务与回滚事务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。