# 环境要求
- 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关系。