当前位置: 首页 > news >正文

spring boot系列(七)spring boot 使用mongodb

1 pom.xml配置

增加包依赖:spring-boot-starter-data-mongodb

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2 application.properties配置文件中增加:

spring.data.mongodb.uri=mongodb://127.0.0.1:27017/ceshidb

ceshidb是数据库名字

    2.4版本以上的mongodb采用如下格式配置:

spring.data.mongodb.uri=mongodb://root(userName):root(password)@localhost(ip地址):27017(端口号)/gis数据库)

 3 创建实体类

package com.cfj.ceshi.entity;


public class UserEntity {
    
    private static final long serialVersionUID = 1L;
    private Long id;
    private String userName;
    private String passWord;
    

    public UserEntity() {
        super();
    }

    public UserEntity(String userName, String passWord) {
        super();
        this.passWord = passWord;
        this.userName = userName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    
    @Override
    public String toString() {
        return "userName " + this.userName + ", pasword " + this.passWord;
    }

}

4 创建dao接口和实现类

package com.cfj.ceshi.dao;

import com.cfj.ceshi.entity.UserEntity;

public interface UserDao {
    
    public void saveUser(UserEntity user);

    public UserEntity findUserByUserName(String userName);

    public int updateUser(UserEntity user);

    public void deleteUserById(Long id);

}
package com.cfj.ceshi.dao.impl;



import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;

import com.cfj.ceshi.dao.UserDao;
import com.cfj.ceshi.entity.UserEntity;
import com.mongodb.WriteResult;

@Repository
public class UserDaoImpl implements UserDao{
    
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public void saveUser(UserEntity user) {
        //mongoTemplate.save(user);
        mongoTemplate.save(user, "jihe01");//指定集合
        
    }

    @Override
    public UserEntity findUserByUserName(String userName) {
        Query query = new Query(Criteria.where("userName").is(userName));
        //UserEntity user =  mongoTemplate.findOne(query, UserEntity.class);
        UserEntity user =  mongoTemplate.findOne(query, UserEntity.class, "jihe01");//指定集合
        return user;
    }

    @Override
    public int updateUser(UserEntity user) {
        Query query=new Query(Criteria.where("id").is(user.getId()));
        Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());
        //更新查询返回结果集的第一条
        WriteResult result =mongoTemplate.updateFirst(query,update,UserEntity.class, "jihe01");
        //更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,UserEntity.class);
        if(result!=null)
            return result.getN();
        else
            return 0;
    }

    @Override
    public void deleteUserById(Long id) {
        Query query=new Query(Criteria.where("id").is(id));
        mongoTemplate.remove(query,UserEntity.class, "jihe01");
        
    }
    
    

}

 5 创建service接口和实现类

package com.cfj.ceshi.service;

import com.cfj.ceshi.entity.UserEntity;

public interface UserService {
    
    public void saveUser(UserEntity user);

    public UserEntity findUserByUserName(String userName);

    public int updateUser(UserEntity user);

    public void deleteUserById(Long id);
   
}
package com.cfj.ceshi.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cfj.ceshi.dao.UserDao;
import com.cfj.ceshi.entity.UserEntity;
import com.cfj.ceshi.service.UserService;


@Service
public class UserServiceImpl implements UserService{
    
    @Autowired
    private UserDao userDao;

    @Override
    public void saveUser(UserEntity user) {
        userDao.saveUser(user);
    }

    @Override
    public UserEntity findUserByUserName(String userName) {
        return userDao.findUserByUserName(userName);
    }

    @Override
    public int updateUser(UserEntity user) {
        return userDao.updateUser(user);
    }

    @Override
    public void deleteUserById(Long id) {
        userDao.deleteUserById(id);
    }
    

}

6 创建web(control)层

package com.cfj.ceshi.web;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.cfj.ceshi.entity.UserEntity;
import com.cfj.ceshi.service.UserService;

@RestController
public class UserController {
    
    @Autowired
    private UserService userService;
    
    
    //按名字查询
    @RequestMapping("/getUserByName")
    public String getUserByName(String name) {
        UserEntity user= userService.findUserByUserName(name);
        return user.toString();
    }
    
    //增加方法
    @RequestMapping("/add")
    public void save() {
         UserEntity user=new UserEntity();
         user.setId(3l);
         user.setUserName("小明");
         user.setPassWord("fffooo123");
         userService.saveUser(user);
     }
     //更新方法
     @RequestMapping("/update")
     public void update(UserEntity user) {
         userService.updateUser(user);
     }
     //删除方法
     @RequestMapping(value="/delete")
     public void delete(Long id) {
         userService.deleteUserById(id);
     }
    

}

 7 可以使用postman等工具进行测试

 

代码地址:https://gitee.com/kaixinmao/springboot-mongodb

转载于:https://www.cnblogs.com/kxm87/p/9627692.html

相关文章:

  • [WCF安全系列]谈谈WCF的客户端认证[用户名/密码认证]
  • 别说国产虚拟化不行,现在国内虚拟化的主流趋势是国产化
  • JavaOne大事纪:IBM谈OpenJ9和Open Liberty
  • 只有坚持才能学好linux系统
  • 一句代码实现批量数据绑定[上篇]
  • 设置样式-----背景和边框
  • Python垃圾回收机制
  • 在linux系统上文件传输的小技巧
  • mysql主从复制的步骤
  • 随笔分类整理
  • python xlwt 设置 格式
  • 《JavaScript权威指南第六版》学习笔记-语句
  • Parallels Desktop和VM里体验Ubuntu18.04LTS(2018.9重编版)
  • android压力测试命令monkey详解【转】
  • 机器学习学习笔记一
  • 【译】理解JavaScript:new 关键字
  • emacs初体验
  • Java,console输出实时的转向GUI textbox
  • Linux CTF 逆向入门
  • Material Design
  • miaov-React 最佳入门
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • redis学习笔记(三):列表、集合、有序集合
  • Redux 中间件分析
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • SQL 难点解决:记录的引用
  • 对象引论
  • 关于 Cirru Editor 存储格式
  • 关于Flux,Vuex,Redux的思考
  • 后端_ThinkPHP5
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何解决微信端直接跳WAP端
  • 线性表及其算法(java实现)
  • 新书推荐|Windows黑客编程技术详解
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 用jQuery怎么做到前后端分离
  • 找一份好的前端工作,起点很重要
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​渐进式Web应用PWA的未来
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $jQuery 重写Alert样式方法
  • (13):Silverlight 2 数据与通信之WebRequest
  • (HAL库版)freeRTOS移植STMF103
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)丶RabbitMQ的六大核心
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (论文阅读40-45)图像描述1
  • (强烈推荐)移动端音视频从零到上手(上)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net Web窗口页属性
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!