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



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