转载

SpringBoot整合Spring Data Mongodb

  • 数据量大
  • 数据价值较低

安装

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使用如下:
@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/
正文到此结束
Loading...