很多人都在知道,计算机行业的发展是非常迅速的,软件开发人员想要跟上时代的发展,最重要的就是不断挑战自己。在学习软件开发的过程,前期学习的知识是远远不够的,需要了解更多的知识,并且挑战更多的复杂性。
现在学习Java语言不能忽略工具和框架的使用,工具和框架的构建越来越复杂。很多人不知道学习工具和框架有什么用?下面昌平电脑培训为大家具体了解Java开发应该了解的大数据工具和框架。
一、MongoDB
这是一种最受欢迎的,跨平台的,面向文档的数据库。
MongoDB的核心优势是灵活的文档模型,高可用性复制集和可扩展的碎片集群。北京java培训建议可以尝试以多种方式了解MongoDB,例如MongoDB工具的实时监控,内存使用和页面错误,连接,数据库 *** 作,复制集等。
二、Elasticsearch
主要是能够为云构建的分布式RESTful搜索引擎。
Elasticsearch主要是使用在Lucene之中的服务器,能够进行分布式多用户能力的全文搜索引擎,并且还是使用在Java的开发中,这是现在很多企业中使用最流行的搜索引擎。ElasticSearch不仅是一个全文搜索引擎,而且是一个分布式实时文档存储,每个字段都能够被索引并且可以被搜索。它也是一个具有实时分析功能的分布式搜索引擎,java课程发现它还可以扩展到数百个服务器存储和处理数PB的数据。
三、Cassandra
这是一个开源的分布式数据库管理系统,最初由Facebook开发,用于处理许多商用服务器上的大量数据,提供高可用性而无单点故障。
ApacheCassandra是一套开源分布式NoSQL数据库系统。集GoogleBigTable的数据模型与AmazonDynamo的完全分布式架构于一身。于2008开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web20网站所采纳,成为了一种流行的分布式结构化数据存储方案。
四、Redis
开源(BSD许可证)内存数据结构存储,用作数据库,缓存和消息代理。
Redis是一个开源的,基于日志的Key-Value数据库,用ANSIC编写,支持网络,可以基于内存持久化,并提供多种语言的API。Redis有三个主要功能,北京IT培训认为可以将它与许多其他竞争对手区分开来:Redis是一个将数据完全存储在内存中的数据库,仅使用磁盘用于持久性目的。
需要的jar
mongo-java-driver
maven仓库里面,mongodb30的连接驱动<!-- MongoDB数据库连接驱动 -->
<dependency>
<groupId>orgmongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>300</version>
</dependency>
2连接过程代码
import orgbsonDocument;
import commongodbMongoClient;
import commongodbclientMongoCollection;
import commongodbclientMongoDatabase;
/
2016年8月5日下午3:19:44
@author 3306 TODO 测试Mongo数据库连接
/
public class TestMongo {
private static MongoClient mongoClient;
private static String host = "1921680149";// mongo数据库服务器地址,本地为127001
private static int port = 20000;// mongo默认为27017端口
/
获取数据库集合
@param databaseName
数据库名称
@param collectionName
集合名称
@return MongoCollection<Document>
/
public static MongoCollection<Document> getMongoCollection(String databaseName, String collectionName) {
return getMongoDatabase(databaseName)getCollection(collectionName);
}
/
获取mongo数据库
@param databaseName
数据库名称
@return MongoDatabase
/
public static MongoDatabase getMongoDatabase(String databaseName) {
mongoClient = new MongoClient(host, port);
return mongoClientgetDatabase(databaseName);
}
/
测试数据连接
@param args
/
public static void main(String[] args) {
String databaseName = "mojing";// 数据库
String collectionName = "user";// 集合名称
MongoCollection<Document> userCollection = getMongoCollection(databaseName, collectionName);
Systemoutprintln(userCollectioncount());
}
}
MongoTemplate配置
一般情况下,按照如下配置,springboot会进行自动装配,但是如果需要实现一些自定义的功能,例如密码加解密,类型转换等功能需要手写配置MongoTemplate。
@EnableMongoRepositories()表示支持Spring JPA,即通过规范命名的接口来实现简单的DB *** 作,不需要自己写Query,可以通过该注解的value属性来指定注解的作用范围。
ReUtil是一个正则表达式的工具类,用于判断配置文件的格式是否正确,配置MongoDatabaseFactory过程中实现一个比较简单的配置文件解密的过程,解密方法用简单的字符串翻转来实现。
通过MappingMongoConverter来实现java中的对象与MongoDB中的Document进行一些复杂的映射,默认情况下一个java域对象存入MongoDB时会生成一个"_class"的key对应存储Java对象类型,通过
来取消每条记录生成一个"-class"的数据。
通过MappingMongoConverter实现一个简单的时间转化功能TimestampConverter,如下所示
还可以进行更加精细化的配置,例如
可以通过WritingConverter和ReadingConverter配置Document和Java对象相互转化。
MongoTemplate实战
例如一个博客系统,我们通过MongoDB存储用户的浏览记录,浏览记录的实体如下所示,
如上所示,每个人对应每篇文章有一条浏览记录,每次访问都会对访问次数viewCount进行+1 *** 作下文针对这个场景介绍MongoTemplate的基本 *** 作。
这些 *** 作用法基本一样,如下所示,传入一个封装查询条件的对象Query,Java中映射的对象entityClass和MongoDB中对应的Document的名称。
例如我们想要查询某个用户某篇博客的访问次数,我们只需要通过博客id和访问者构建查询条件进行查询即可。
findAndModify表示更新符合查询条件的记录,其方法如下所示,
Query封装查询条件,Update封装的是更新内容。例如用户每次刷新页面浏览次数会+1 *** 作,我们可以使用findAndModify *** 作,如下所示
如上所示,首先判断用户是否存在访问记录,如果存在则通过Update对访问次数viewCount进行+1 *** 作,若不存在访问记录则新建访问记录。
保存 *** 作包括主要包括insert和save方法,这两个方法都没有返回值,同时两个方法有一些区别,
该方法如下所示,
注释说明该方法的功能是,如果存在与查询条件匹配的文档,则根据Update中的内容进行更新,如果不存在符合查询条件的内容,则根据查询条件和Update插入新的文档。
聚合查询 MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。本文侧重于Java实现。
结合上述中的访问记录的场景,如果我们需要统计某个博主某个专栏下面所有文章的访问记录,包括访问总人数,访问总次数,以及每个访客对应的访问次数详情,并且要满足分页需求,那么我们需要用到MongoDB的聚合 *** 作,具体实现如下所示
总结
本文详细介绍了SpringBoot如何整合MongoDB,并且结合博客系统的访问记录展示了MongoTemplate的基本用法。
1、连接数据库,拿到集合firstCollection
MongoClient mClient = new MongoClient("10211558");
DB db = mClientgetDB("test");
DBCollection collection = dbgetCollection("firstCollection");
2、插入一条文档
内容:name:user28,age:30,sex:1
Java方法内容:
BasicDBObject obj = new BasicDBObject();
objput("name", "user28");
objput("age", 30);
objput("sex", 1);
collectioninsert(obj);
这样就成功插入了一条文档,插入后的内容如下所示:
{ "_id" : ObjectId("55bf285368084e1906793d7a"), "name" : "user28", "age" : 30, "sex" : 1 }
3、批量插入文档
当需要插入多条文档的时候,循环进行单条插入当然是可以,但是效率不高,MongoDB提供了批量插入的方法
内容1:name:user29,age:30,sex:1
内容2:name:user30,age:30,sex:1
在 Java 程序中如果要使用 MongoDB,你需要确保已经安装了 Java 环境及 MongoDB JDBC 驱动。
连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。
以上就是关于学习Java应该了解的大数据和框架全部的内容,包括:学习Java应该了解的大数据和框架、java链接mongo数据库需要引什么jar包、SpringBoot整合MongoDB实战等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)