了解mongodb
MongoDB是一款强大、灵活、且易于扩展的通用型数据库
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
准备
1.下载mongodb
登录MongoDB官网:MongoDB Community Download | MongoDB
选择MongoDB Community Server,选择Windows环境
如果我们的服务器是Windows Server 2008R2 或者Windows 7环境,则选择
傻瓜式安装一路next即可
配置环境变量
双击path
填入安装目录里面的bin目录
接下来就可以在cmd里输入mongo确认开启,然后就可以使用了
2.搭建springboot项目
选择java8
选择要导入的依赖,勾选一个lombok即可
这就是创建出来的结构
3.导入mongodb依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
4.配置yml文件
spring:
data:
mongodb:
uri: mongodb://用户名:密码@服务器IP:端口/数据库名
# 上方为明确指定某个数据的用户进行连接
# 也可以使用admin 数据库中的用户进行连接 统一到admin 数据库进行认证
# admin 用户认证 url 写法: mongodb://账户:密码%40@ip:端口/数据库名?authSource=admin&authMechanism=SCRAM-SHA-1
实体类
需使用@Document("goods")来指定表名这里为goods,@Field与mongodb字段里对应
service层
package com.wjj.mongo.Dao;
import com.wjj.mongo.pojo.goods;
import org.bson.types.ObjectId;
import java.util.List;
public interface goodsDao {
/**
* 查询所有
* @return
*/
public List<goods> finAll();
/**
*新增
* @param goods
*/
void save(goods goods);
/**
* 根据id删除
* @param id
*/
void deleteById(ObjectId id);
/**
* 修改
* @param goods
*/
void update(goods goods);
/**
* 根据名称查询
* @param name
* @return
*/
goods selByName(String name);
}
实现类
package com.wjj.mongo.Dao.impl;
import com.wjj.mongo.Dao.goodsDao;
import com.wjj.mongo.pojo.goods;
import org.bson.types.ObjectId;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
@Repository
public class goodsDaoImpl implements goodsDao {
@Resource
private MongoTemplate mongoTemplate;
@Override
public List<goods> finAll() {
return mongoTemplate.findAll(goods.class);
}
@Override
public void save(goods goods) {
mongoTemplate.insert(goods);
}
@Override
public void deleteById(ObjectId id) {
Criteria criteria=new Criteria();
criteria.and("_id").is(id);
Query query=new Query(criteria);
mongoTemplate.remove(query,goods.class);
}
@Override
public void update(goods goods) {
Query query=new Query(Criteria.where("_id").is(goods.get_id()));
Update update=new Update();
update.set("name",goods.getName());
update.set("price",goods.getPrice());
update.set("remark",goods.getRemark());
mongoTemplate.upsert(query,update, com.wjj.mongo.pojo.goods.class);
}
@Override
public goods selByName(String name) {
Criteria criteria=new Criteria();
criteria.and("name").is(name);
Query query=new Query(criteria);
return mongoTemplate.findOne(query,goods.class);
}
}