深入实践Spring Boot2.3.4 MongoDB测试

2.3.4 MongoDB测试

如果还没有安装MongoDB服务器,可以参照附录B的方法安装并启动一个MongoDB服务器。然后,使用如代码清单2-18所示的配置方法配置连接服务器的一些参数,该配置假定你的MongoDB服务器安装在本地,并使用默认的数据库端口:27017。

代码清单2-18 MongoDB数据库配置

# MongoDB

mongo.host=localhost

mongo.name=test

mongo.port=27017

这样就可以编写一个JUint测试例子来测试UserRepository接口的使用情况,如代码清单2-19所示。测试例子首先使用用户文档类创建一个用户对象实例,然后使用资源库接口调用save方法将用户对象保存到数据库中,最后使用f?indAll方法查询所有用户的列表,并使用一个循环输出用户的简要信息。

代码清单2-19 MongoDB测试

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes
= {TestDataSourceConfig.class})

@FixMethodOrder

public class
RepositoryTests {

    private static Logger logger =
LoggerFactory.getLogger(RepositoryTests.class);

 

   
@SuppressWarnings("SpringJavaAutowiringInspection") @Autowired

    UserRepository userRepository;

 

    @Before

    public void setup(){

        Set<String> roles = new
HashSet<>();

        roles.add("manage");

        User user = new
User("1","user","12345678","name","email@com.cn",new
Date(),

roles);

        userRepository.save(user);

    }

 

    @Test

    public void findAll(){

        List<User> users =
userRepository.findAll();

        Assert.notNull(users);

        for(User user : users){

            logger.info("===user===
userid:{}, username:{}, pass:{}, registra

tionDate:{}",

                user.getUserId(),
user.getName(), user.getPassword(), user.

getRegistrationDate());

        }

    }

}

现在可以在IDEA的Run/Debug
Conf?iguration配置中增加一个JUint测试项目,模块选择mongodb,工作目录选择模块所在的工程根目录,类选择上面编写的测试例子,即dbdemo.mongo.test.RepositoryTests,并将配置保存为mongotest。

使用Debug方式运行测试项目mongotest。如果通过测试,将输出查到的用户的简要信息,如下所示:

dbdemo.mongo.test.RepositoryTests
- ===user=== userid:1, username:name, pass:12345678, registrationDate:Tue Jun
07 14:26:02 CST 2016

这时使用MongoDB数据库客户端输入下面的查询指令,也可以查到这条文档的详细信息,这是一条JSON结构的文本信息。

>
db.user.find()

{
"_id" : "1", "_class" :
"dbdemo.mongo.models.User", "username" : "user",
"password" : "12345678", "name" :
"name", "email" : "email@com.cn",
"registrationDate" : ISODate("2016-04-13T06:27:02.423Z"),
"roles" : [ "manage" ] }

2.4 使用Neo4j

有没有既具有传统关系型数据库的优点,又具备NoSQL数据库优势的一种数据库呢?Neo4j就是一种这样的数据库。Neo4j是一个高性能的NoSQL图数据库,并且具备完全事务特性。Neo4j将结构化数据存储在一张图上,图中每一个节点的属性表示数据的内容,每一条有向边表示数据的关系。Neo4j没有表结构的概念,它的数据用节点的属性来表示。

时间: 2024-10-29 13:48:13

深入实践Spring Boot2.3.4 MongoDB测试的相关文章

深入实践Spring Boot2.3.1 MongoDB依赖配置

2.3.1 MongoDB依赖配置 在Spring Boot中使用MongoDB也像使用JPA一样容易,并且同样拥有功能完善的资源库.同样的,要使用MongoDB,首先必须在工程的Maven中引入它的依赖,如代码清单2-14所示.除了MongoDB本身的依赖之外,还需要一些附加的工具配套使用. 代码清单2-14 使用MongoDB的Maven依赖配置 <dependencies>     <dependency>         <groupId>org.springf

深入实践Spring Boot2.2.3 Redis测试

2.2.3 Redis测试 如果还没有安装Redis服务器,可以参照本书附录C提供的方法安装,然后在工程的配置文件application.yml中配置连接Redis服务器等参数,如代码清单2-12所示.其中host和port分别表示Redis数据库服务器的IP地址和开放端口,database可以不用指定,由Redis根据存储情况自动选定(注:测试时这些配置是集成在一个配置类中实现的). 代码清单2-12 Redis配置 spring:     redis:     # database: 1  

深入实践Spring Boot2.4.4 Neo4j测试

2.4.4 Neo4j测试 代码清单2-24是Neo4j的数据库配置类,其中@Enable-TransactionManagement启用了事务管理,@EnableNeo4jRe-positories启用了Neo4j资源库并指定了我们定义的资源库接口的位置,在重载的SessionFactory函数中设定了定义实体的位置,这将促使定义的实体被作为域对象导入,RemoteServer设定连接Neo4j服务器的URL.用户名和密码,这些参数要依据安装Neo4j服务器的情况来设置.如果还没有安装Neo4

深入实践Spring Boot2.3 使用MongoDB

2.3 使用MongoDB 在当前流行的NoSQL数据库中,MongoDB是大家接触比较早而且用得比较多的数据库.MongoDB是文档型的NoSQL数据库,具有大数据量.高并发等优势,但缺点是不能建立实体关系,而且也没有事务管理机制.

深入实践Spring Boot2.5 小结

2.5 小结 这一章,我们一口气学习使用了4种数据库:MySQL.Redis.MongoDB.Neo4j,除了Redis以外,都使用了由Spring Boot提供的资源库来访问数据库并对数据库执行了一般的存取操作.可以看出,在Spring Boot框架中使用数据库非常简单.容易,这主要得益于Spring Boot资源库的强大功能,Spring Boot资源库整合了第三方资源,它把复杂的操作变成简单的调用,它把所有"辛苦.繁重的事情"都包揽了,然后将"微笑和鲜花"献给

深入实践Spring Boot2.3.3 文档持久化

2.3.3 文档持久化 MongoDB也有像使用JPA那样的资源库,如代码清单2-16所示,为用户文档创建了一个Repository接口,继承于MongoRepository,实现了文档持久化. 代码清单2-16 用户文档持久化 public interface UserRepository extends MongoRepository<User, String> {     User findByUsername(String username); } MongoRepository的继承

深入实践Spring Boot2.1.2 实体建模

2.1.2 实体建模 首先创建一些普通对象,用来与数据库的表建立映射关系,接着演示如何使用JPA对数据库进行增删查改等存取操作. 假如现在有三个实体:部门.用户和角色,并且它们具有一定的关系,即一个用户只能隶属于一个部门,一个用户可以拥有多个角色.它们的关系模型如图2-1所示.   图2-1 MySQL实体-关系模型示例 Spring Boot的实体建模与使用Spring框架时的定义方法一样,同样比较方便的是使用了注解的方式来实现. 部门实体的建模如代码清单2-2所示,其中注解@Table指定关

深入实践Spring Boot2.1 使用MySQL

2.1 使用MySQL 对于传统关系型数据库来说,Spring Boot使用JPA(Java Persistence API)资源库来实现对数据库的操 作,使用MySQL也是如此.简单地说,JPA就是为POJO(Plain Ordinary Java Object)提供持久化的标准规 范,即将Java的普通对象通过对象关系映射(Object-Relational Mapping,ORM)持久化到数据库中.

深入实践Spring Boot2.2.2 创建Redis服务类

2.2.2 创建Redis服务类 Redis提供了下列几种数据类型可供存取: string: hash: list: set及zset. 在实例中,将使用string即字符串的类型来演示数据的存取操作.对于Redis,Spring Boot没有提供像JPA那样相应的资源库接口,所以只能仿照上一节中Repository的定义编写一个实体User的服务类,如代码清单2-10所示.这个服务类可以存取对象User以及由User组成的列表List,同时还提供了一个删除的方法.所有这些方法都是使用Redis