SpringBoot+MongoDB:不一样的快感
1、快速创建maven工程:http://start.spring.io/

pom.xml依赖如下图:

2、在applicaiton.properties里引入MongoDB

3、SpringBoot有几种方式可以使用MongoDB,这里介绍使用MongoTemplate这种方式
3.1 编写User,和Pojo没有什么区别
import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3.2编写UserDao和实现类UserDaoImpl
import java.util.List; public interface UserDao { void save(User user); User findById(int id); User findOneByOrder(); List<User> findByPageable(int page,int size); }
import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; 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.stereotype.Component; @Component public class UserDaoImpl implements UserDao{ @Autowired private MongoTemplate template; @Override public void save(User user) { template.save(user); } @Override public User findById(int id) { Query query = new Query(Criteria.where("id").is(id)); return template.findOne(query, User.class); } @Override public User findOneByOrder() { Sort sort = new Sort(new Order(Direction.DESC,"id")); Query query = new Query(); query.with(sort); return template.findOne(query, User.class); } @Override public List<User> findByPageable(int page,int size) { Query query = new Query(); Pageable pageable = new PageRequest(page,size); query.with(pageable); return template.find(query, User.class); } }
3.3编写测试类UserDaoTest
import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class UserDaoTest { @Autowired private UserDao dao; @Test @Ignore public void save() { User user = new User(); user.setId(3); user.setName("three"); dao.save(user); } @Test @Ignore public void findById() { User user = dao.findById(1); System.out.println(user.getId()+":"+user.getName()); } @Test @Ignore public void findOneByOrder() { User user = dao.findOneByOrder(); System.out.println(user.getId()+":"+user.getName()); } @Test public void findByPageable() { List<User> users = dao.findByPageable(1,2); for (User user : users) { System.out.println(user.getId()+":"+user.getName()); } } }
3.4打开mongodb,查看结果

是不是很快很便捷?
MongoTemplate还有很多的方法,几乎包括了所有的CRUD,用的时候可以一一参照API
浙公网安备 33010602011771号