互联网网络爬虫浅悟(二)

2018-05-15
  • 1080
  • 0

# 环境要求

 

- JDK7或更高版本(支持JDK8)。建议使用JDK8,有更好的内存管理。更低版本的JDK7可能需要设置Java内存`-XX:PermSize=128M -XX:MaxPermSize=512M`,否则可能出现这种类型的内存溢出:`java.lang.OutOfMemoryError: PermGen space`。

- Servlet3.0或更高版本(如Tomcat7或更高版本)。

- MySQL5.5或更高版本(如需使用MySQL5.0,可将mysql驱动版本替换为5.1.24);Oracle10g或更高版本;SQLServer2005或更高版本。

- Maven3.2或更高版本。

- 系统后台兼容的浏览器:IE9+、Edge、Firefox、Chrome。

- 前台页面兼容的浏览器取决于模板,使用者可以完全控制模板,理论上可以支持任何浏览器。自带的默认模板兼容的浏览器:IE8+、Edge、Firefox、Chrome。

 

## 搭建步骤

 

1. 创建数据库。如使用MySQL,字符集选择为`utf8`或者`utf8mb4`(支持更多特殊字符如表情字符emoji,推荐)。

2. 执行数据库脚本。数据库脚本在`database`目录下。

3. 在eclipse中导入maven项目。点击eclipse菜单`File` - `Import`,选择`Maven` - `Existing Maven Projects`。创建好maven项目后,会开始从maven服务器下载第三方jar包(如spring等),需要一定时间,请耐心等待。

4. 修改数据库连接。打开`/src/main/resources/application.propertis`文件,根据实际情况修改`spring.datasource.url`、`spring.datasource.username`、`spring.datasource.password`的值。

5. 启动程序。**请一定按照这里介绍的方式启动程序,否则可能因上下文路径(ContextPath)导致页面没有样式等问题**。在eclipse中,右键点击项目名,选择`Run as` - `Maven build...`,`Goals`填入`spring-boot:run`,`JRE`选项卡中可以选择JDK版本,`VM arguments`输入框中可以设置java内存参数,如使用JDK7,应在此处填入`-XX:PermSize=128M -XX:MaxPermSize=512M`,然后点击`Run`。

6. 访问系统。前台地址:[http://localhost:8080/](http://localhost:8080/),使用手机访问前台或者使用浏览器模拟手机访问前台,系统会调用手机端模板,显示手机端的界面。后台地址:[http://localhost:8080/cmscp/index.do](http://localhost:8080/cmscp/index.do),用户名:admin,密码:空。

 

## Maven镜像

 

使用国外的Maven仓库速度很慢、甚至连接不上,很容易出错。可以使用aliyun的Maven镜像仓库。

 

修改maven的settings.xml文件,mirrors部分使用以下配置:

 

<mirrors>

  <mirror>

    <id>central</id>

    <mirrorOf>*</mirrorOf>

    <name>Nexus Aliyun</name>

    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

  </mirror>

</mirrors>

 

MongoDB教程是为初学者和专业人士设计的,在本系列教程中提供了SQL的基本和高级概念。

MongoDB是一个NoSQL数据库。 它是一个使用C++编写的开源,跨平台,面向文档的数据库。

MongoDB教程包括MongoDB数据库的所有主题,如插入文档,更新文档,删除文档,查询文档,投影,sort()和limit()方法,创建集合,放置集合等。还提供了MongoDB一些常见问题来帮助你更好地了解MongoDB数据库。

MongoDB不支持多文档原子事务。 但是,它可以为单个文档提供了原子操作。 因此,如果文档有一百个字段,则更新语句将更新或不更新所有字段的值,因此在原始级别保持原子性。

{

   "_id":1,

   "product_name": "Huawei P9",

   "category": "mobiles",

   "product_total": 5,

   "product_available": 3,

   "product_bought_by": [

      {

         "customer": "Kobe",

         "date": "2017-07-08"

      },

      {

         "customer": "Maxsu",

         "date": "2018-07-28"

      }

   ]

}

聚合操作处理数据记录并返回计算结果。 聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。

要将数据插入到 MongoDB 集合中,需要使用 MongoDB 的 insert()或save()方法。

要限制 MongoDB 中返回的记录数,需要使用limit()方法。 该方法接受一个数字类型参数,它是要显示的文档数。

分片是在多台机器之间存储数据记录的过程,MongoDB是满足数据增长需求的方法。 随着数据的大小增加,单个机器可能不足以存储所有数据,也不能提供可接受的读写吞吐量。 分片解决了水平缩放的问题。 使用分片,可以添加更多的机器来支持数据增长和读写操作的需求。

 

MongoDB中的关系表示各个文档在逻辑上的相互关联。关系可以通过嵌入式和引用方法建模。 这种关系可以是1:1,1:N,N:1或N:N。

假设有一种情况:要存储用户的地址。一个用户可以拥有多个地址,这就是1:N关系。