概述
目录
- 1 SpringData MongoDB简介
- 2 MongoDB环境搭建
- 2.1 解压
- 2.2 创建需要的目录
- 2.3 创建配置文件
- 2.4 启动mongodb
- 3 SpringData MongoDB入门案例
- 3.1目标
- 3.2 创建工程,引入坐标
- 3.3 创建配置文件
- 3.4 创建实体类
- 3.5 自定义dao接口
- 3.6 测试
- 4 SpringData MongoDB实现CRUD操作
- 4.1 增删改
- 4.2 简单查询
- 4.3 命名规则查询
想学习架构师构建流程请跳转:Java架构师系统架构设计
1 SpringData MongoDB简介
MongoDB是一个跨平台的,面向文档的数据库,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的一种格式,因此可以存储比较复杂的数据类型。
MongoDB主要由文档(document)、集合(collection)、数据库(database)三部分组成
- 文档(document)就相当于关系数据库中的一行记录
- 多个文档组成一个集合(collection),相当于关系数据库的表
- 多个集合组织在一起,就是数据库(database),一个 MongoDB 实例支持多个数据库
SpringData MongoDB是SpringData技术封装了mongodb-driver技术之后的产物,它可以用更加简单的方式操作MongoDB。
2 MongoDB环境搭建
2.1 解压
上传文件到服务器,然后将其解压到/usr/local下
[root@localhost src]# tar -zxvf mongodb-linux-x86_64-rhel70-4.0.10.tgz -C /usr/local/
2.2 创建需要的目录
进入软件的安装目录下,创建数据存储和日志存储目录
[root@localhost src]# cd /usr/local/mongodb-linux-x86_64-rhel70-4.0.10/
[root@localhost mongodb-linux-x86_64-rhel70-4.0.10]# mkdir data
[root@localhost mongodb-linux-x86_64-rhel70-4.0.10]# touch log
2.3 创建配置文件
进入bin目录,创建mongodb的配置文件mongo.conf ,文件内容如下:
dbpath=/usr/local/mongodb-linux-x86_64-rhel70-4.0.10/data
logpath=/usr/local/mongodb-linux-x86_64-rhel70-4.0.10/log
bind_ip=0.0.0.0
port=27017
fork=true
2.4 启动mongodb
使用./mongod -f mongo.conf 启动服务,见到类似如下提示,证明启动成功
[root@localhost bin]# ./mongod -f mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 25781
child process started successfully, parent exiting
3 SpringData MongoDB入门案例
3.1目标
通过SpringData技术向Mongodb数据库存储一条数据
3.2 创建工程,引入坐标
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.1.8.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
</dependencies>
3.3 创建配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
<!--包扫描-->
<mongo:repositories base-package="net.csdn"></mongo:repositories>
<!-- spring连接mongodb数据库的配置 -->
<mongo:mongo-client host="192.168.106.128" port="27017" id="mongo">
<mongo:client-options write-concern="SAFE" />
</mongo:mongo-client>
<mongo:db-factory id="mongoDbFactory" dbname="oldlu" mongo-ref="mongo" />
<!--mongoTemplate-->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
</beans>
3.4 创建实体类
@Document(collection = "article")//通过collection参数指定当前实体类对应的文档
public class Article {
@Id
private Integer id;
@Field("title")//给映射存储到 mongodb 的字段取别名
private String title;
private String Content;
//省略set get toString方法
}
3.5 自定义dao接口
//自定义dao接口继承MongoRepository<实体类型,主键类型>
public interface ArticleDao extends MongoRepository<Article, Integer> {}
3.6 测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class ArticleDaoTest {
@Autowired
private ArticleDao articleDao;
//保存
@Test
public void testSave() {
Article article = new Article();
article.setId(1);
article.setTitle("程序员");
article.setContent("程序员很低调");
article.setHits(100);
articleDao.save(article);
}
}
4 SpringData MongoDB实现CRUD操作
4.1 增删改
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class ArticleDaoTest {
@Autowired
private ArticleDao articleDao;
//保存
@Test
public void testSave() {
Article article = new Article();
article.setId(1);
article.setTitle("程序员");
article.setContent("程序员很低调");
article.setHits(100);
articleDao.save(article);
}
//修改
@Test
public void testUpdate() {
Article article = new Article();
article.setId(1);
article.setTitle("程序员1");
article.setContent("程序员很低调1");
article.setHits(1000);
articleDao.save(article);
}
//删除
@Test
public void testDelete() {
articleDao.deleteById(1);
}
}
4.2 简单查询
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class ArticleDaoTest {
@Autowired
private ArticleDao articleDao;
//查询所有
@Test
public void testFindAll() {
List<Article> articles = articleDao.findAll();
for (Article article : articles) {
System.out.println(article);
}
}
//根据主键查询
@Test
public void testFindByid() {
Optional<Article> optional = articleDao.findById(1);
System.out.println(optional.get());
}
//排序分页查询
@Test
public void testFindAllWithPage() {
//按照hits倒序排列
Sort sort = Sort.by(Sort.Order.desc("hits"));
//从0开始查询,查10条
Pageable pageable = PageRequest.of(0,10,sort);
Page<Article> page = articleDao.findAll(pageable);
for (Article article : page.getContent()) {
System.out.println(article);
}
}
}
4.3 命名规则查询
定义接口
public interface ArticleDao extends MongoRepository<Article, Integer> {
//根据标题查询
List<Article> findByTitleLike(String title);
//根据标题或内容查询
List<Article> findByHitsGreaterThan(Integer hits);
}
测试方法
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class ArticleDaoTest {
@Autowired
private ArticleDao articleDao;
@Test
public void testFindByTitle() {
Iterable<Article> articles = articleDao.findByTitleLike("程序员");
for (Article article : articles) {
System.out.println(article);
}
}
@Test
public void testFindByHitsGreaterThan() {
Iterable<Article> articles = articleDao.findByHitsGreaterThan(110);
for (Article article : articles) {
System.out.println(article);
}
}
}
最后
以上就是瘦瘦鞋子为你收集整理的SpringData MongoDB1 SpringData MongoDB简介2 MongoDB环境搭建3 SpringData MongoDB入门案例4 SpringData MongoDB实现CRUD操作的全部内容,希望文章能够帮你解决SpringData MongoDB1 SpringData MongoDB简介2 MongoDB环境搭建3 SpringData MongoDB入门案例4 SpringData MongoDB实现CRUD操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复