学习Java应该了解的大数据和框架

学习Java应该了解的大数据和框架,第1张

很多人都在知道,计算机行业的发展是非常迅速的,软件开发人员想要跟上时代的发展,最重要的就是不断挑战自己。在学习软件开发的过程,前期学习的知识是远远不够的,需要了解更多的知识,并且挑战更多的复杂性。

现在学习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实战等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10194059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存