一.安裝本地mongo環境創建一個要使用的數據庫
mongo相關基礎命令可以去這裏學習 http://www.runoob.com/mongodb/mongodb-create-database.html
二.在springboot 項目中配置mongo
2.1 ,maven加入mongo依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.2 ,在application.properties配置數據源
spring.data.mongodb.uri=mongodb://localhost:27017/庫名
2.3,新建實體類User
public class User {
private Long id;
private String username;
private String password;
private Integer age;
public User(Long id, String username, String password, Integer age) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
}
public User() {
}
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;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2.4,新建接口Dao以及Dao的實現類(包括增刪改查)/**
* @author honghe
*
*/
public interface UserDao{
//保存一個用戶
void saveUser(User user);
//查詢所有用戶
List<User> findAllUser();
//根據用戶名模糊查詢所有用戶
List<User> findAllUserByName(String username);
//修改用戶
void updateUser(User user);
//刪除用戶
void delUser(User user);
}
@Component
public class UserDaoImpl implements UserDao{
@Autowired
private MongoTemplate mongoTemplate;
@Override
public void saveUser(User user) {
mongoTemplate.save(user);
}
@Override
public List<User> findAllUser() {
return mongoTemplate.findAll(User.class);
}
@Override
public List<User> findAllUserByName(String username){
Query query = new Query(Criteria.where("username").regex(username));
return mongoTemplate.find(query,User.class,"user");
}
@Override
public void updateUser(User user) {
Query query=new Query(Criteria.where("id").is(user.getId()));
Update update= new Update().set("username", user.getUsername()).set("passWord", user.getPassword());
//更新查詢返回結果的第一個數據
UpdateResult u = mongoTemplate.updateFirst(query,update,User.class);
System.out.println(UpdateResult.class.toString());
}
@Override
public void delUser(User user) {
Query query=new Query(Criteria.where("id").is(user.getId()));
mongoTemplate.remove(query,User.class);
}
}
三.在springboot Test中進行測試
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
UserDao userDao;
/**
* 向mongo添加文檔
*/
@Test
public void testSaveUser() {
for (int i = 1; i <=1 ; i++) {
User user=new User();
user.setId(Long.valueOf(i));
user.setUsername("紅鶴"+ new Random().nextInt(100));
user.setPassword("123456");
user.setAge(new Random().nextInt(100));
userDao.saveUser(user);
}
}
/**
* 查詢所有的user集合表
*/
@Test
public void findAllUser(){
List<User> list = userDao.findAllUser();
for (User u:list) {
System.out.println("id:"+u.getId()+"--name:"+u.getUsername()+"--password:"+u.getPassword()+"--age:"+u.getAge());
}
}
/**
* 模糊查詢所有的user集合表
*/
@Test
public void findAllUserByName(){
List<User> list = userDao.findAllUserByName("紅鶴1");
for (User u:list) {
System.out.println("id:"+u.getId()+"--name:"+u.getUsername()+"--password:"+u.getPassword()+"--age:"+u.getAge());
}
}
/**
* 向mongo修改文檔
*
*/
@Test
public void editUser() {
User user = new User();
user.setId(1L);
user.setUsername("admin");
user.setPassword("111111");
userDao.updateUser(user);
}
/**
* 向mongo刪除文檔
*
*/
@Test
public void delUser() {
User user = new User();
user.setId(1L);
userDao.delUser(user);
}
}
四.以上爲mongo在springboot中的基本操作使用,自測ok
ps: git地址:https://gitee.com/zhaoershuang/springboot-mongo.git