安装
docker pull mongo
docker run --name mymongo -p 27017:27017 -d mongo
概念解析
SQL术语/概念 |
MongoDB术语/概念 |
解释/说明 |
database |
database |
数据库 |
table |
collection |
数据库表/集合 |
row |
document |
数据记录行/文档 |
column |
field |
数据字段/域 |
index |
index |
索引 |
table joins |
|
表连接,MongoDB不支持 |
primary key |
primary key |
主键,MongoDB自动将_id字段设置为主键 |
使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
spring:
application:
name: mongodb-server
data:
mongodb:
host: ****** # 主机地址
port: 27017 # 端口
database: test # 数据库
server:
port: 9003
- 新建User实体类,存储在MongonDB中,如下:
@Data
@Accessors(chain=true) //链式调用
public class Userimplements Serializable{
@Id
private Integer _id;
private String name;
private String mobile;
private Date birthday;
}
-
定义一个
UserRepository
继承 MongoRepository
/**
* 用户的dao层的接口,实现MongoRepository
* 第一个泛型指定的是实体类,第二个指定的是主键Id的类型
*/
public interface UserRepositoryextends MongoRepository<User,Integer>{
}
@Service
@Transactional //开启事务
public class UserServiceImpl{
@Resource
private UserRepository userRepository; //注入
/**
* 添加用户
* @return
*/
public User addUser(User user){
User user2 = userRepository.save(user);
System.out.println(1/0);
return user2;
}
/**
* 批量添加
* @param users
* @return
*/
public List<User> addUserBatch(List<User> users){
List<User> user2 = userRepository.saveAll(users);
return user2;
}
/**
* 根据Id删除
* @param id
*/
public void deleteById(Integer id){
userRepository.deleteById(id);
}
/**
* 更新数据,使用的还是save方法,相当于覆盖
* @param user
* @return
*/
public User update(User user){
User user2 = userRepository.save(user);
return user2;
}
/**
* 根据Id获取信息
* @param id
* @return
*/
public User findById(Integer id){
return userRepository.findById(id).get();
}
/**
* 查询全部
* @return
*/
public List<User> findAll(){
return userRepository.findAll();
}
/**
* 分页查询信息
* @param pageSize
* @param pageNum
* @return
*/
public List<User> findUserList(Integer pageNum,Integer pageSize){
Pageable pageable=new PageRequest(pageNum-1,pageSize);
Page<User> pages = userRepository.findAll(pageable);
if (pages.hasContent()) {
return pages.getContent();
}
return null;
}
}
原文
https://chenjiabing666.github.io/2018/12/25/SpringBoot整合Spring-Data-Mongodb/