实例介绍

为了方便用户入门,Neo4j Web管理界面提供了一个官方入门实例“电影关系图”,帮助初学者在自己电脑上一步步创建一个入门级别的图数据库。下面围绕这个“电影关系图”实例一步步介绍、分析其创建和查询等操作。

首先,打开Neo4j Web管理界面后,在引导实例区单即“Write Code”链接进入代码书写引导页,然后单击Movie Graph下的Create a graph链接就进入“电影关系图”实例引导界面了,如下图:

neo4j

电影关系图实例将电影、电影导演、演员之间的复杂网状关系作为蓝本,使用Neo4j创建三者关系的图结构,虽然实例数据规模小但结构是相对完整的。

阅读更多

介绍

图形数据库(Graph Database)用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j 创建的图是用顶点和边构建一个有向图,其查询语言 cypher 已经成为事实上的标准

模型规则

  • 表示节点,关系和属性中的数据
  • 节点和关系都包含属性
  • 关系连接节点
  • 属性是键值对
  • 节点用圆圈表示,关系用方向键表示。
  • 关系具有方向:单向和双向。
  • 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

neo4j

安装运行

下载Neo4j Desktop并运行,创建一个新的Graphlocal graph的默认用户为neo4j,密码为neo4j

Web访问

1
http://localhost:7474/browser/

阅读更多

文件名须以”_test.go”结尾

方法名须以”Test”打头,并且形参为 (t *testing.T)

举例:/hello_test.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14

package main

import (
"testing"
"fmt"
)

func TestHello(t *testing.T) {
fmt.Println("TestHello")
}

func TestWorld(t *testing.T) {
fmt.Println("TestWorld")

阅读更多

Mac 下编译 Linux 和 Windows 64位可执行程序

1
2
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Linux 下编译 Mac 和 Windows 64位可执行程序

1
2
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows 下编译 Mac 和 Linux 64位可执行程序

1
2
3
4
5
6
7
8
9
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go

摘要

defer 意为延迟,在 golang 中用于延迟执行一个函数。它可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。但在实际使用过程中,有一些需要注意的地方(坑),下面我们一一道来。

匿名与有名返回值

匿名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
)

func main() {
fmt.Println("a return:", a()) // 打印结果为 a return: 0
}

func a() int {
var i int
defer func() {
i++
fmt.Println("a defer2:", i) // 打印结果为 a defer2: 2
}()
defer func() {
i++
fmt.Println("a defer1:", i) // 打印结果为 a defer1: 1
}()
return i
}

阅读更多

Problem

1
2
3
4
5
6
7
8
Error report:
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.IDL_UB2$ by 128 in tablespace SYSTEM
00604. 00000 - "error occurred at recursive SQL level %s"
*Cause: An error occurred while processing a recursive SQL statement
(a statement applying to internal dictionary tables).
*Action: If the situation described in the next error on the stack
can be corrected, do so; otherwise contact Oracle Support.

阅读更多

前言

最近在调研Drill,需要导入大量的测试数据来评估下其查询性能是否满足需要,于是就看到了TPC-DS,折腾了一番,毕竟没有详细的文档,总览一部分查询后,简单整理如下(仅限于导入到MySQL):

阅读更多