springBoot整合MongoDB(单机)
Posted lshan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springBoot整合MongoDB(单机)相关的知识,希望对你有一定的参考价值。
依赖:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
配置
application.properties:
#spring.data.mongodb.uri=mongodb://localhost:27017/sea spring.data.mongodb.uri=mongodb://用户名:密码@localhost:27017/sea
方式:1: 使用
@Autowired
private MongoTemplate mongoTemplate;
eg:
package com.icil.dao; 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.icil.domain.UserEntity; @Repository public class UserDAO { @Autowired private MongoTemplate mongoTemplate; /** * 创建对象 * @param user */ public void saveUser(UserEntity user) { mongoTemplate.save(user); } /** * 根据用户名查询对象 * @param userName * @return */ public UserEntity findUserByUserName(String userName) { Query query=new Query(Criteria.where("userName").is(userName)); UserEntity user = mongoTemplate.findOne(query , UserEntity.class); return user; } /** * 更新对象 * @param user */ public void 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()); //更新查询返回结果集的第一条 mongoTemplate.updateFirst(query,update,UserEntity.class); //更新查询返回结果集的所有 // mongoTemplate.updateMulti(query,update,UserEntity.class); } /** * 删除对象 * @param id */ public void deleteUserById(Long id) { Query query=new Query(Criteria.where("id").is(id)); mongoTemplate.remove(query,UserEntity.class); } }
方式2:extends MongoRepository
eg:
UserRepository.java
package com.goku.demo.repository; import com.goku.demo.model.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.Query; import java.util.List; /** * Created by nbfujx on 2017-12-08. */ public interface UserRepository extends MongoRepository<User, Long> { /** * Like(模糊查询) * {"username" : name} ( name as regex) * */ List<User> findByUsernameLike(String username); /** * Like(模糊查询) * {"username" : name} * */ List<User> findByUsername(String username); /** * GreaterThan(大于) * {"age" : {"$gt" : age}} * */ List<User> findByAgeGreaterThan(int age); /** * LessThan(小于) * {"age" : {"$lt" : age}} * */ List<User> findByAgeLessThan(int age); /** * Between(在...之间) * {{"age" : {"$gt" : from, "$lt" : to}} * */ List<User> findByAgeBetween(int from, int to); /** * IsNotNull, NotNull(是否非空) * {"username" : {"$ne" : null}} * */ List<User> findByUsernameNotNull(); /** * IsNull, Null(是否为空) * {"username" : null} * */ List<User> findByUsernameNull(); /** * Not(不包含) * {"username" : {"$ne" : name}} * */ List<User> findByUsernameNot(String name); /** * Near(查询地理位置相近的) * {"location" : {"$near" : [x,y]}} * */ // findByLocationNear(Point point) /** * Within(在地理位置范围内的) * {"location" : {"$within" : {"$center" : [ [x, y], distance]}}} * */ //findByLocationWithin(Circle circle) /** * Within(在地理位置范围内的) * {"location" : {"$within" : {"$box" : [ [x1, y1], x2, y2]}}} * */ // findByLocationWithin(Box box) @Query("{"username":{"$regex":?0}, "age": ?1}") Page<User> findByNameAndAgeRange(String name,int age,Pageable page); @Query(value="{"username":{"$regex":?0},"age":{"$gte":?1,"$lte": ?2}}") Page<User> findByNameAndAgeRange2(String name,int ageFrom,int ageTo,Pageable page); @Query(value="{"username":{"$regex":?0},"age":{"$gte":?1,"$lte": ?2}}",fields="{"username" : 1, "age" : 1}") Page<User> findByNameAndAgeRange3(String name,int ageFrom,int ageTo,Pageable page); }
User:
package com.goku.demo.model; import org.springframework.data.annotation.Id; import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = -1L; @Id private Long id; private String username; private Integer age; public User(Long id, String username, Integer age) { this.id = id; this.username = username; this.age = age; } 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return ""User:{"id":""+id+"","username":""+username+"","age":""+age+""}""; } }
以上是关于springBoot整合MongoDB(单机)的主要内容,如果未能解决你的问题,请参考以下文章
springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制)
springboot2.x版本整合redis(单机/集群)(使用lettuce)