//Document指定数据插入到MongoDB数据库里的名字为textCollection的集合中@Document(collection ="textCollection")@Data@AllArgsConstructor@NoArgsConstructorpublicclassUser{private Long id;private String password;private String name;private Integer age;}
编写UserDao接口
publicinterfaceUserDao{publicvoidsaveUser(User user);//新增数据publicvoidremoveUser(Long id);//删除数据public User findUserByName(String name);//通过名字查找数据publicintupdateUser(User user);//修改数据}
编写UserDaoImpl实现类
@RepositorypublicclassUserDaoImplimplementsUserDao{@Autowiredprivate MongoTemplate mongoTemplate;@OverridepublicvoidsaveUser(User user){
mongoTemplate.save(user);}@OverridepublicvoidremoveUser(Long id){
Query query =newQuery(Criteria.where("id").is(id));//查找其id字段的值与传入参数id相等的数据
mongoTemplate.remove(query,User.class);}@Overridepublic User findUserByName(String name){
Query query =newQuery(Criteria.where("name").is(name));
User user = mongoTemplate.findOne(query,User.class);return user;}@OverridepublicintupdateUser(User user){
Query query =newQuery(Criteria.where("id").is(user.getId()));
Update update =newUpdate().set("name",user.getName()).set("password",user.getPassword());//更新查询返回的结果集的第一条数据
UpdateResult result = mongoTemplate.updateFirst(query,update,User.class);//更新查询到的所有结果集//UpdateResult all_result = mongoTemplate.updateMulti(query,update,User.class);if(result!= null)return(int) result.getModifiedCount();elsereturn0;}}
编写CRUD测试
@TestpublicvoidsaveUser(){
User u =newUser();
u.setId(1L);
u.setPassword("123456asfa");
u.setName("xiaoming");
u.setAge(24);
userDao.saveUser(u);}@TestpublicvoidfindUserByName(){
User u = userDao.findUserByName("xiaoming");
System.out.println(u);}@TestpublicvoidremoveUser(){
userDao.removeUser(2L);}@TestpublicvoidupdateUser(){
User u =newUser();
u.setId(1L);
u.setName("abcedf");
u.setPassword("qwerttyui");int update_num = userDao.updateUser(u);
System.out.println("update num:"+update_num);}