MongoDB双数据源配置

JAVA的mongoDB双数据源配置

最近的项目里有这个需求所以就研究看下怎么配置mongo双数据源,配置其实也很简单(项目框架为springMVC)

1.首先在mongo配置文件中配置两套mongo数据源
<mongo:mongo-client id="mongoClient" host="${mongo.host}" port="${mongo.port}" credentials="${mongo.username}:${mongo.password}@${mongo.dbname}">
    <mongo:client-options write-concern="SAFE" 
    connections-per-host="${mongo.connectionsPerHost}" 
    threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}" 
    connect-timeout="${mongo.connectTimeout}" 
    max-wait-time="${mongo.maxWaitTime}" 
    socket-keep-alive="${mongo.socketKeepAlive}" 
    socket-timeout="${mongo.socketTimeout}"/>
</mongo:mongo-client>

<mongo:db-factory id="mongoDbFactory" dbname="${mongo.dbname}" mongo-ref="mongoClient"/>

<mongo:mongo-client id="mongoClient1" host="${mongo.host}" port="${second.mongo.port}" credentials="${second.mongo.username}:${second.mongo.password}@${second.mongo.dbname}">
    <mongo:client-options write-concern="SAFE" 
    connections-per-host="${second.mongo.connectionsPerHost}" 
    threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}" 
    connect-timeout="${second.mongo.connectTimeout}" 
    max-wait-time="${second.mongo.maxWaitTime}" 
    socket-keep-alive="${second.mongo.socketKeepAlive}" 
    socket-timeout="${second.mongo.socketTimeout}"/>
</mongo:mongo-client>

<mongo:db-factory id="mongoDbFactory1" dbname="${second.mongo.dbname}" mongo-ref="mongoClient1"/>

2.上述配置中所涉及到的参数配置(两套配置参数)
#MongoDB conf1
mongo.dbname=mongof
mongo.host=127.0.0.1
mongo.port=27017
mongo.username=123456
mongo.password=123456
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
mongo.connectTimeout=1500
mongo.maxWaitTime=1500
mongo.socketKeepAlive= true
mongo.socketTimeout=1500

#MongoDB conf2
second.mongo.dbname=mongot
second.mongo.host=127.0.0.1
second.mongo.port=27017
second.mongo.username=123456
second.mongo.password=123456
second.mongo.connectionsPerHost=8
second.mongo.threadsAllowedToBlockForConnectionMultiplier=4
second.mongo.connectTimeout=1500
second.mongo.maxWaitTime=1500
second.mongo.socketKeepAlive= true
second.mongo.socketTimeout=1500	
3.在需要对mongo做操作的地方进行引用(用到@Qualifier注解)
/**
* 第一套mongo数据源template
*/
@Autowired
@Qualifier("mongoTemplate")
private MongoTemplate mongoTemplate;

/**
* 第二套mongo数据源template
*/
@Autowired
@Qualifier("mongoTemplate1")
private MongoTemplate mongoTemplate1;

//下面代码就可以通过对应的MongoTemplate对Mongo数据进行增删改查操作了
所有的配置就已经结束啦~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mybatisplus是一个基于MyBatis的ORM框架,它可以简化数据操作,并提供了很多便捷的功能和工具。下面我将简单介绍如何配置mybatisplus实现MySQL和MongoDB数据源。 首先,我们需要在pom.xml文件中导入mybatisplus的依赖,以及MySQL和MongoDB的驱动依赖。然后,在项目的配置文件(例如application.properties或application.yml)中配置MySQL和MongoDB的连接信息,如下所示: MySQL配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver # mybatisplus配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity # 分页配置 mybatis-plus.global-config.db-type=mysql ``` MongoDB配置: ``` spring.data.mongodb.uri=mongodb://localhost:27017/mydb spring.data.mongodb.username=root spring.data.mongodb.password=password # mybatisplus配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity # 分页配置 mybatis-plus.global-config.db-type=mongodb ``` 接下来,我们需要创建一个数据源配置类,用于自定义MyBatis的配置。在该配置类中,我们可以设置多个数据源,并分别指定其对应的Mapper映射文件和实体类的包路径。同时,我们还需要手动注册MyBatis的分页插件,以支持分页查询。 最后,在我们的业务类和Mapper接口中,我们可以使用@Mapper注解来标识该接口为Mapper接口,并使用@Autowired注解来自动注入Mapper接口的实例。这样,我们就可以通过调用Mapper接口中的方法,实现对MySQL和MongoDB的数据操作了。 需要注意的是,MySQL和MongoDB是两种不同的数据系统,它们具有不同的数据模型和查询语法。我们在使用mybatisplus进行数据源配置时,需要根据具体的需求和使用场景,灵活地编写和调整对应的Mapper接口和SQL语句。 总结起来,配置mybatisplus实现MySQL和MongoDB数据源,需要在项目中添加相应的依赖和配置文件,创建数据源配置类,并在业务类和Mapper接口中使用相应的注解来实现数据的读写操作。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值