spring cloud mongodb 生产者、消费者实现crud

本文介绍了一个基于MongoDB的用户管理系统的设计与实现,包括实体类定义、DAO层操作、业务层处理及控制器交互等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生产者部分:

实体类:

@Data
@Document
public class Groups implements Serializable {
    @Id
    private String gid;
    private String gname;
}
@Document 
@Data 
public class User  implements Serializable {
    @Id //mongo自动创建id
    private String id;
    @Indexed(unique = true)//唯一
    private String username;
    private Integer sex;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    @DBRef //多对一
    private Groups groups;
}

DAO:这里分别采用MongoRespository和MongoTemplate

public interface UserDao extends MongoRepository<User,String> {
}

public interface IGroupsDao {

       void save(Groups groups);

       List<Groups> groups();

       Groups findById(String gid);
}
@Repository
public class GroupsDao implements IGroupsDao {
    @Resource
    private MongoTemplate mongoTemplate;
    @Override
    public void save(Groups groups) {
        this.mongoTemplate.save(groups);
    }

    @Override
    public List<Groups> groups() {
        return this.mongoTemplate.findAll(Groups.class);
    }

    @Override
    public Groups findById(String gid) {
        return this.mongoTemplate.findById(gid,Groups.class);
    }
}
@Repository
public class GroupsDao implements IGroupsDao {
    @Resource
    private MongoTemplate mongoTemplate;
    @Override
    public void save(Groups groups) {
        this.mongoTemplate.save(groups);
    }

    @Override
    public List<Groups> groups() {
        return this.mongoTemplate.findAll(Groups.class);
    }

    @Override
    public Groups findById(String gid) {
        return this.mongoTemplate.findById(gid,Groups.class);
    }
}

业务层:

@Transactional
public interface IUserService {
       //保存:添加或修改
       void save(User user);
       //列表
       List<User> users();
       //查询id
       User findOne(String id);
       //删除
       void delete(String id);

       List<Groups> groups();

       Groups findById(String gid);

}
@Service
public class UserService implements IUserService{
    @Resource
    private UserDao userDao;
    @Resource
    private IGroupsDao groupsDao;


    @Override
    public void save(User user) {
        this.userDao.save(user);
    }

    @Override
    public List<User> users() {
        return this.userDao.findAll();
    }

    @Override
    public User findOne(String id) {
        return this.userDao.findById(id).get();
    }

    @Override
    public void delete(String id) {
        this.userDao.deleteById(id);
    }

    @Override
    public List<Groups> groups() {
        return this.groupsDao.groups();
    }

    @Override
    public Groups findById(String gid) {
        return this.groupsDao.findById(gid);
    }
}

控制器:

@RestController
public class UserController {
    @Resource
    private IUserService userService;

    @GetMapping("/users")
    public List<User> users(){
        return this.userService.users();
    }

    @GetMapping("/del/{id}")
    public boolean del(@PathVariable("id")String id){
        try {
            this.userService.delete(id);
            return true;
        }catch (Exception e){
            return false;
        }
    }

    @PostMapping("/save")
    public boolean save(@RequestBody User user){
        System.out.println("...............>"+user);
        try {
            this.userService.save(user);
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }

    @GetMapping("/find/{id}")
    public User findUser(@PathVariable("id")String id){
         return this.userService.findOne(id);
    }


    @GetMapping("/groups")
    public List<Groups> groups(){
        return this.userService.groups();
    }

    @GetMapping("/findGroup/{gid}")
    public Groups findGroup(@PathVariable("gid")String gid){
        return this.userService.findById(gid);
    }

}

消费者部分:

实体类:

@Data
public class Groups {
    private String gid;
    private String gname;
}

@Data
public class User implements Serializable {
    
    private String id;
    private String username;
    private Integer sex;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    private Groups groups;

}

业务层:

@FeignClient("mongo-model")
public interface UserService {

    @GetMapping("/users")
    public List<User> users();

    @PostMapping("/save")
    boolean save(User user);

    @GetMapping("/del/{id}")
    public boolean del(@PathVariable("id")String id);

    @GetMapping("/find/{id}")
    public User findById(@PathVariable("id")String id);

    @GetMapping("/groups")
    public List<Groups> groups();

}

控制器:

@RestController
public class AjaxController {
    @Resource
    private UserService userService;

    @GetMapping("/list")
    public List<User> users(){
        return this.userService.users();
    }

    @PostMapping("/add")
    public boolean save(User user){
        System.out.println("################...>"+user);
        try {
            this.userService.save(user);
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }

    @GetMapping("/delete/{id}")
    public boolean del(@PathVariable("id")String id){
        try{
            this.userService.del(id);
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }

    @GetMapping("/show/{id}")
    public Map<String,Object> findId(@PathVariable("id") String id){
         User user= this.userService.findById(id);//要修改的用户对象
         List<Groups> gs=this.userService.groups();//所有的组
         Map<String,Object> map = new HashMap<String,Object>(10);
         map.put("user",user);
         map.put("gs",gs);
         return map;
    }

    @GetMapping("/gs")
    public List<Groups> gs(){
        return this.userService.groups();
    }
}
@Controller 
public class UserController {

     @GetMapping("/") //转到到列表页面
     public String tolist(){
         return "list";
     }

     @GetMapping("/add")//添加请求
     public String toadd(){
         return "add";
     }

     @GetMapping("/find")
     public String toupdate(){
         return "update";
     }

}

启动类:

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class MongoWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(MongoWebApplication.class, args);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值