1、安装并启动mongodb,方法如:https://my.oschina.net/lion1220/blog/3151024
2、创建项目,并导入mongodb jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
3、properties文件中添加配置项
spring.data.mongodb.uri=mongodb://localhost:27017
spring.data.mongodb.database=test
spring.data.mongodb.username=admin
spring.data.mongodb.password=admin123
4、编写MongoDB配置类
@Configuration
public class MongoConfig {
@Bean
MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}
}
5、编写dao
@Repository
public interface GoodsRepository extends MongoRepository<Goods,String> {
}
6、编写service
@Service
public class GoodsServiceImpl implements IGoodsService {
@Autowired
private GoodsRepository goodsRepository;
@Autowired
private MongoOperations mongoOperations;
@Autowired
private MongoTemplate mongoTemplate;
@Override
public Goods findById(String id) {
return goodsRepository.findById(id).get();
}
@Override
public Goods save(Goods blog) {
return goodsRepository.save(blog);
}
@Override
public void delete(Goods blog) {
goodsRepository.delete(blog);
}
@Override
public void deleteById(String id) {
goodsRepository.deleteById(id);
}
@Override
public long update(Goods blog) {
UpdateResult result = mongoOperations.upsert(new Query(new Criteria("id").is(blog.getId())),
new Update().set("goodsName", blog.getGoodsName()), Goods.class);
return result.getModifiedCount();
}
@Override
public List<Goods> findByShopName(String goodsName) {
Goods goods = new Goods();
goods.setGoodsName(goodsName);
ExampleMatcher matcher = ExampleMatcher.matching();
Example<Goods> example = Example.of(goods, matcher);
return goodsRepository.findAll(example);
}
@Override
public Page<Goods> findAll(Goods blog, Pageable pageable) {
ExampleMatcher matcher = ExampleMatcher.matching();
Example<Goods> example = Example.of(blog, matcher);
Sort.Order order = Sort.Order.asc("salePrice");
Sort sort = Sort.by(order);
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber() - 1, pageable.getPageSize(), sort);
return goodsRepository.findAll(example, pageRequest);
}
}
7、测试数据库操作