SpringBoot中集成MongoDB

之前项目中使用了mysql+mybatis,现在因业务需要,要增加mongo数据库(是增加,也就是两者并存,一本分表使用mysql管理,另一部分使用mongo管理),先将集成过程记录如下。

  • 首先,在pom.xml中集成mongo的starter
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
  • 然后在application.properties中配置下数据库的地址:
spring.data.mongodb.uri=mongodb://用户名:密码@服务器ip/实例名

需要注意的是,此地址是针对mongo 3.x 的,如果是mongo 2.x ,用户名和密码是要分开写的,具体方法请参考springboot文档。

  • 最后,在代码中就可以引用到mongotemplate这个对象了,如下:
    @Autowired
    protected MongoTemplate mongoTemplate;

此时就可以使用mongoTemplate对象对数据库进行各种操作了。


如果你不满足于此,可以继续向下看。

在mybatis中,我们可以以接口的形式声明各种mapper,mapper中的方法既可以映射到xml文件中来完成数据库的操作,也可以直接在其上使用@Select等注解来将sql语句直接编写到代码中。而在spring-data中,我们也可以以接口的进行类似的操作,那么我们在操作Mongo数据库时,能否也使用类似的方法呢?答案是肯定的。
(注意:此方法和上文叙述的方法并不冲突,也就是说可以同时使用这两种方法来访问mongo)

我们只要编写接口,然后继承MongoRepository接口即可,如下:

import org.springframework.data.mongodb.repository.Query;

public interface MongoDaoTest extends MongoRepository<Settings, Long> {

    List<Settings> findByName();

    @Query("{id:0}")
    List<Settings> findById(Long id);
}

MongoRepository是继承自CrudRepository接口的,因此对表的基本的crud等操作的方法都已经包含了,我们只需要添加一些我们业务上需要的方法即可。
此接口中我自定义了两个方法,第一个是典型的findByXxxx的方法,springboot会根据方法名自动为我们生成查询语句,第二个方法我使用了org.springframework.data.mongodb.repository.Query这个注解,其中传入了json格式的参数(操作mongo数据库时,注解中只能使用json格式的进行查询,而且这个格式好像限制挺多的,比如类似group等操作我就没找到抒写的方法)。
使用此方法就能实现类似于mybatis的操作数据的方式。


全文完

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值