摘要: 我们经常会遇到这样的场景:上传/下载文件。 有两种思路可以解决这个问题: (1)将文件存储在服务器的文件系统中; (2)将文件存储在数据库中。 如果我们选择(2),那么我们可以使用MongoDB GridFS 用于存储大小超过 16MB 的文件(文档,压缩文件,音视频,软件)。 一、MongoDB 阅读全文
posted @ 2018-04-10 15:48 赫尔修斯 阅读(2746) 评论(0) 推荐(0) 编辑
摘要: 本文对关系型数据库的相关概念做些解析。 关系型数据库(Relational Database) 由 Edgar.F.Codd 教授于 1969 年提出,是使用遵循一阶逻辑的语言和结构来管理数据的模型。 1970 年,Prof.Codd 提出第一范式(1NF,First Normal Form); 1 阅读全文
posted @ 2018-04-02 09:26 赫尔修斯 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 本文分析的是 spring-data-mongodb-1.9.2.RELEASE.jar 和 mongodb-driver-core-3.2.2.jar。 一、UML Class Diagram 核心类是 MongoTemplate,下面这张 UML 类图涉及了主要的类,省略了次要的类。 涉及的类: 阅读全文
posted @ 2018-03-30 17:05 赫尔修斯 阅读(3463) 评论(0) 推荐(0) 编辑
摘要: Studio 3T 是一款对 MongoDB 进行数据操作的可视化工具。 在 Studio 3T 中,我们可以借助 Query Builder 的 Drag & Drop 来构建查询条件。 具体的 Query Builder 使用方式可以阅读 Studio 3T 官方的这篇文章。 注意:在指定某个字 阅读全文
posted @ 2018-03-30 13:16 赫尔修斯 阅读(5085) 评论(0) 推荐(0) 编辑
摘要: 在使用 MySQL 时,我们有时会遇到这样的报错:“Deadlock found when trying to get lock; try restarting transaction”。 在 14.5.5.3 How to Minimize and Handle Deadlocks 中有这样一句话 阅读全文
posted @ 2018-03-27 17:27 赫尔修斯 阅读(7736) 评论(0) 推荐(0) 编辑
摘要: 这篇笔记是关于 Doug Lea 的 The java.util.concurrent Synchronizer Framework 。 原文地址:http://gee.cs.oswego.edu/dl/papers/aqs.pdf。 1. JDK 1.5 引入 java.util.concurre 阅读全文
posted @ 2018-03-25 15:42 赫尔修斯 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 我们知道 JDK 8 新增了 Lambda Expression 这一特性。 JDK 8 为什么要新增这个特性呢? 这个特性给 JDK 8 带来了什么好处? 它可以做什么?不可以做什么? 在这篇文章,我打算简单聊聊这些话题。 1. Lambda Expression 是什么? Lambda Expr 阅读全文
posted @ 2018-03-16 15:39 赫尔修斯 阅读(648) 评论(0) 推荐(0) 编辑
摘要: MongoDB 对于数据的 schema 要求很灵活。 与 MySQL 相比,collection 并不会强制文档的结构。(MySQL 在定义表时, 需要指定有哪些字段、类型、展示长度等) 因此,插入数据到 MongoDB 非常灵活。 同一个 collection 中可以有结构不同(字段不同)的文档 阅读全文
posted @ 2018-01-14 14:19 赫尔修斯 阅读(369) 评论(0) 推荐(0) 编辑
摘要: Java 泛型 Java Generics 是 JDK 1.5 引入的新特性,它提供了编译时的类型安全检测机制,避免了代码中进行显示的类型转换(cast),是对类型系统的一种增强。 Java Generics 引入了类型参数(type parameter),将集合元素的类型作为了参数。 Java 泛 阅读全文
posted @ 2018-01-09 10:54 赫尔修斯 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 最近看了 Brian Goetz 写的一篇有关 DCL 的文章:Double-checked locking: Clever, but broken。(2001 年发表于 JavaWorld 上) 这篇文章讲述了 DCL 设计的初衷,但是因为 JVM 的不同实现(没有严格遵循 JMM 规范)导致 D 阅读全文
posted @ 2018-01-03 21:33 赫尔修斯 阅读(886) 评论(0) 推荐(0) 编辑