SpringBoot2>02 - 集成MongoDB

扯淡:

上一章】已经接触了MongoDB 的基础命令,本章将结合普通的java项目和springboot 分别集成MongoDB。

 springboot、springcloud、docker学习目录:【传送门】 

基本的 java 项目:

1、pom 依赖:

<dependency>
     <groupId>org.mongodb</groupId>
     <artifactId>mongodb-driver</artifactId>
     <version>3.6.3</version>
</dependency>

mongodb-driver 是官方推出的java驱动包,类似JDBC。

2、测试类

2.1、普通查询:

public class MongoDemo {
     public static void main(String[] args) {
         // 创建连接
         MongoClient client=new MongoClient("192.168.25.130",27017);
         // 指定数据库
         MongoDatabase coolron = client.getDatabase("coolron");
         // 指定集合(表)
         MongoCollection<Document> user = coolron.getCollection("user");
         // 查询所有记录
        FindIterable<Document> documents = user.find();   //查询记录获取文档集合
        for(Document document:documents){
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>");
            System.out.println("_id:" + document.getString("_id"));
            System.out.println("name:" + document.getString("name"));
            System.out.println("age:" + document.getInteger("age"));
            System.out.println("count:" + document.getDouble("count"));
        }
        // 关闭连接
        client.close();
    }
}

2.2、条件查询,使用 BasicDBObject 对象封装

public class MongoDemo {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client=new MongoClient("192.168.25.130",27017);
        // 指定数据库
        MongoDatabase coolron = client.getDatabase("coolron");
        // 指定集合(表)
        MongoCollection<Document> user = coolron.getCollection("user");
        // 构建查询 条件
        BasicDBObject bson=new BasicDBObject("age",18);
        FindIterable<Document> documents = user.find(bson);
        for(Document document:documents){
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>");
            System.out.println("_id:" + document.getString("_id"));
            System.out.println("name:" + document.getString("name"));
            System.out.println("age:" + document.getInteger("age"));
            System.out.println("count:" + document.getDouble("count"));
        }
        //关闭连接
        client.close();
    }
}

大于:

// 构建查询条件
BasicDBObject bson=new BasicDBObject("age",new BasicDBObject("$gt",18) );

2.3、插入数据:

public static void main(String[] args) {
       // 创建连接
        MongoClient client=new MongoClient("192.168.25.130",27017);
        // 指定数据库
        MongoDatabase coolron = client.getDatabase("coolron");
        // 指定集合(表)
        MongoCollection<Document> user = coolron.getCollection("user");

        Map<String,Object> map=new HashMap();
        map.put("_id","6");
        map.put("name","rose");
        map.put("age",56);
        map.put("count",80);
        Document document=new Document(map);
        //插入数据
        user.insertOne(document);
        client.close();
}

插入数据结果如下:

扫描二维码关注公众号,回复: 5041676 查看本文章

SpringBoot 集成 MongoDB:

1、主要 pom 依赖

<parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.0.1.RELEASE</version>
</parent>

<dependencies>
      <!-- Spring Boot Web 依赖 -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
     <!-- Spring Boot Test 依赖 -->
     <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
     </dependency>
     <!-- Spring Boot MongoDB依赖 -->
     <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-mongodb</artifactId>
     </dependency>
</dependencies>

2、application.properties

# 远程地址
spring.data.mongodb.host=192.168.25.130
# 端口
spring.data.mongodb.port=27017
# 数据库
spring.data.mongodb.database=coolron

3、user 实体

/**
 * @Auther: xf
 * @Date: 2018/12/13 22:45
 * @Description: MongoDB user 集合实体
 */
@Data
public class User implements Serializable {
    @Id
    private String _id;
    private String name;
    private Integer age;
    private Double count;
}

4、dao

public interface MongoUserDao extends MongoRepository<User, String> {

}

5、service

@Service
public class MongoUserService {

    @Autowired
    private MongoUserDao userDao;
    /**
     * 查询全部记录
     */
    public List<User> findAll(){
        return userDao.findAll();
    }
    /**
     * 根据主键查询实体
     */
    public User findById(String id){
        User spit = userDao.findById(id).get();
        return spit;
    }
    /**
     * 增加
     */
    public void add(User spit) {
        spit.set_id(String.valueOf(UUID.randomUUID())); //主键值
        userDao.save(spit);
    }
    /**
     * 更新
     */
    public void update(User spit) {
        userDao.save(spit);
    }
    /**
     * 删除
     */
    public void deleteById(String id) {
        userDao.deleteById(id);
    }
}

6、controller

/**
 * @Auther: xf
 * @Date: 2018/12/13 22:59
 * @Description: MongoDB 测试
 */
@RestController
@RequestMapping("/mongoUser")
public class MongoUserController {
    @Autowired
    private MongoUserService userService;
    /**
     * 查询全部数据
     */
    @GetMapping
    public ApiResult findAll(){
        List<User> userList = userService.findAll();
        return ApiResult.ok(userList);
    }
    /**
     * 根据ID查询
     */
    @GetMapping(value="/{id}")
    public ApiResult findOne(@PathVariable String id){
        User user = userService.findById(id);
        return ApiResult.ok(user);
    }
    /**
     * 增加
     */
    @PostMapping
    public ApiResult add(@RequestBody User user){
        userService.add(user);
        return ApiResult.ok();
    }
    @PutMapping(value="/{id}")
    public ApiResult update(@RequestBody User user,@PathVariable String id) {
        user.set_id(id);
        userService.update(user);
        return ApiResult.ok();
    }
    /**
     * 删除
     */
    @DeleteMapping(value="/{id}")
    public ApiResult deleteById(@PathVariable String id ){
        userService.deleteById(id);
        return ApiResult.ok();
    }
}

7、测试:

7.1、查询所有:

7.2、根据id查询:

总结:

1、普通java项目集成MongoDB,使用官方推荐的driver。
2、SpringBoot 集成MongoDB,其starter集成了driver。
3、基本增、删、改、查可参考上述代码。

配套代码:

https://gitee.com/cpla026/springboot-account2/tree/master/springboot2_parent/MongodbDemo

个人学习分享
更多 springboot、springcloud、docker 文章,关注微信公众号吧:

猜你喜欢

转载自blog.csdn.net/cp026la/article/details/86549724