11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx

上传人:b****1 文档编号:5787577 上传时间:2023-05-05 格式:DOCX 页数:11 大小:19.19KB
下载 相关 举报
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第1页
第1页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第2页
第2页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第3页
第3页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第4页
第4页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第5页
第5页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第6页
第6页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第7页
第7页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第8页
第8页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第9页
第9页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第10页
第10页 / 共11页
11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx

《11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx(11页珍藏版)》请在冰点文库上搜索。

11SpringBoot十一Spring boot中mongodb的使用Word文档下载推荐.docx

SpringBoot对各种流行的数据源都进行了封装,当然也包括了mongodb,下面给大家介绍如何在springboot中使用mongodb:

1、pom包配置

pom包里面添加spring-boot-starter-data-mongodb包引用

<

dependencies>

<

dependency>

groupId>

org.springframework.boot<

/groupId>

artifactId>

spring-boot-starter-data-mongodb<

/artifactId>

/dependency>

/dependencies>

2、在application.properties中添加配置

spring.data.mongodb.uri=mongodb:

//name:

pass@localhost:

27017/test

多个IP集群可以采用以下配置:

//user:

pwd@ip1:

port1,ip2:

port2/database

2、创建数据实体

publicclassUserEntityimplementsSerializable{

privatestaticfinallongserialVersionUID=-3258839839160856613L;

privateLongid;

privateStringuserName;

privateStringpassWord;

//getter、setter省略}

3、创建实体dao的增删改查操作

dao层实现了UserEntity对象的增删改查

@ComponentpublicclassUserDaoImplimplementsUserDao{

@Autowired

privateMongoTemplatemongoTemplate;

/**

*创建对象

*@paramuser

*/

@Override

publicvoidsaveUser(UserEntityuser){

mongoTemplate.save(user);

}

*根据用户名查询对象

*@paramuserName

*@return

publicUserEntityfindUserByUserName(StringuserName){

Queryquery=newQuery(Criteria.where("

userName"

).is(userName));

UserEntityuser=mongoTemplate.findOne(query,UserEntity.class);

returnuser;

*更新对象

publicvoidupdateUser(UserEntityuser){

id"

).is(user.getId()));

Updateupdate=newUpdate().set("

user.getUserName()).set("

passWord"

user.getPassWord());

//更新查询返回结果集的第一条

mongoTemplate.updateFirst(query,update,UserEntity.class);

//更新查询返回结果集的所有

//mongoTemplate.updateMulti(query,update,UserEntity.class);

*删除对象

*@paramid

publicvoiddeleteUserById(Longid){

).is(id));

mongoTemplate.remove(query,UserEntity.class);

}}

4、开发对应的测试方法

@RunWith(SpringRunner.class)@SpringBootTestpublicclassUserDaoTest{

privateUserDaouserDao;

@Test

publicvoidtestSaveUser()throwsException{

UserEntityuser=newUserEntity();

user.setId(2l);

user.setUserName("

小明"

);

user.setPassWord("

fffooo123"

userDao.saveUser(user);

publicvoidfindUserByUserName(){

UserEntityuser=userDao.findUserByUserName("

System.out.println("

useris"

+user);

publicvoidupdateUser(){

天空"

fffxxxx"

userDao.updateUser(user);

publicvoiddeleteUserById(){

userDao.deleteUserById(1l);

5、查看验证结果

可以使用工具mongoVUE工具来连接后直接图形化展示查看,也可以登录服务器用命令来查看

1.登录mongos

bin/mongo-hostlocalhost-port20000

2、切换到test库

usetest

3、查询userEntity集合数据

db.userEntity.find()

根据3查询的结果来观察测试用例的执行是否正确。

到此springboot对应mongodb的增删改查功能已经全部实现。

多数据源mongodb的使用

在多mongodb数据源的情况下,我们换种更优雅的方式来实现

添加lombok和spring-boot-autoconfigure包引用

org.projectlombok<

lombok<

spring-boot-autoconfigure<

version>

RELEASE<

/version>

Lombok-是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。

简单试了以下这个工具还挺好玩的,加上注解我们就不用手动写getter\setter、构建方式类似的代码了。

spring-boot-autoconfigure-就是springboot的自动化配置

2、配置文件使用YAML的形式添加两条数据源,如下:

mongodb:

primary:

host:

192.168.9.60

port:

20000

database:

test

secondary:

test1

3、配置两个库的数据源

封装读取以mongodb开头的两个配置文件

@Data@ConfigurationProperties(prefix="

mongodb"

)publicclassMultipleMongoProperties{

privateMongoPropertiesprimary=newMongoProperties();

privateMongoPropertiessecondary=newMongoProperties();

配置不同包路径下使用不同的数据源

第一个库的封装

@Configuration@EnableMongoRepositories(basePackages="

com.neo.model.repository.primary"

mongoTemplateRef=PrimaryMongoConfig.MONGO_TEMPLATE)publicclassPrimaryMongoConfig{

protectedstaticfinalStringMONGO_TEMPLATE="

primaryMongoTemplate"

;

第二个库的封装

com.neo.model.repository.secondary"

mongoTemplateRef=SecondaryMongoConfig.MONGO_TEMPLATE)publicclassSecondaryMongoConfig{

secondaryMongoTemplate"

读取对应的配置信息并且构造对应的MongoTemplate

@ConfigurationpublicclassMultipleMongoConfig{

@Autowired

privateMultipleMongoPropertiesmongoProperties;

@Primary

@Bean(name=PrimaryMongoConfig.MONGO_TEMPLATE)

publicMongoTemplateprimaryMongoTemplate()throwsException{

returnnewMongoTemplate(primaryFactory(this.mongoProperties.getPrimary()));

}

@Bean

@Qualifier(SecondaryMongoConfig.MONGO_TEMPLATE)

publicMongoTemplatesecondaryMongoTemplate()throwsException{

returnnewMongoTemplate(secondaryFactory(this.mongoProperties.getSecondary()));

@Primary

publicMongoDbFactoryprimaryFactory(MongoPropertiesmongo)throwsException{

returnnewSimpleMongoDbFactory(newMongoClient(mongo.getHost(),mongo.getPort()),

mongo.getDatabase());

publicMongoDbFactorysecondaryFactory(MongoPropertiesmongo)throwsException{

}}

两个库的配置信息已经完成。

4、创建两个库分别对应的对象和Repository

借助lombok来构建对象

@Data@AllArgsConstructor@NoArgsConstructor@Document(collection="

first_mongo"

)publicclassPrimaryMongoObject{

@Id

privateStringid;

privateStringvalue;

@Override

publicStringtoString(){

return"

PrimaryMongoObject{"

+"

id='

"

+id+'

\'

'

value='

+value+'

+'

}'

对应的Repository

publicinterfacePrimaryRepositoryextendsMongoRepository<

PrimaryMongoObject,String>

{}

继承了MongoRepository会默认实现很多基本的增删改查,省了很多自己写dao层的代码

Secondary和上面的代码类似就不贴出来了

5、最后测试

@RunWith(SpringRunner.class)@SpringBootTestpublicclassMuliDatabaseTest{

privatePrimaryRepositoryprimaryRepository;

privateSecondaryRepositorysecondaryRepository;

publicvoidTestSave(){

************************************************************"

测试开始"

this.primaryRepository

.save(newPrimaryMongoObject(null,"

第一个库的对象"

));

this.secondaryRepository

.save(newSecondaryMongoObject(null,"

第二个库的对象"

List<

PrimaryMongoObject>

primaries=this.primaryRepository.findAll();

for(PrimaryMongoObjectprimary:

primaries){

System.out.println(primary.toString());

SecondaryMongoObject>

secondaries=this.secondaryRepository.findAll();

for(SecondaryMongoObjectsecondary:

secondaries){

System.out.println(secondary.toString());

测试完成"

到此,mongodb多数据源的使用已经完成。

示例代码

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2