springboot集成mongo

一.安裝本地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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章