Go语言 + Echo框架 + MySQL综述
当我在研究如何使用Golang + MySQL创建API时,发现了很多相关信息,下面是我整理的汇总。
基本设计
基本的流程是按照此进行。
使用Golang+Echo+dbr来进行MySQL的CRUD操作,并返回JSON格式的数据库值的讨论。
以下是使用 Echo 的方式,请参考。
使用 Go 语言开发的 Echo 框架,构建一个能返回 JSON 数据的 Web 服务器,并在 GoogleAppEngine 上运行。
使用 Go 的 Echo 框架能够轻松地实现 RESTful 接口。
Echo公式サイト是Go(Golang)的高效且简洁的HTTP服务器框架。
因为我在意,所以做了个笔记。据Echo官网的信息,他们似乎使用了一个名为carbon ads的服务来测量热图。
我对 Golang 结构体中的「`」符号记法感到好奇,所以进行了调查。
在Go语言中,标签的用途是什么?
看起来像是结构体的元数据。
关于如何在Go语言中处理MySQL的方法概述
整理了一些用于在Golang中操作SQL的库[基础/查询构造器/ORM],Go数据库/SQL教程
在查询与MySQL连接时的连接字符串时,我进行了一番调查。当我查询关于go-sql-driver/mysql时,意外地很快就找到了。第四届Golang Cafe补充说明 数据库访问(MySQL版)中提到,go-sql-driver/mysql现在支持占位符替换。
MySQL(MariaDB)中的INT(11)表达的含义可以通过以下方式确认:整数型的范围。
MySQL “show users” – 如何显示/列出 MySQL 数据库中的用户
-- DB作成
CREATE DATABASE IF NOT EXISTS db_name;
-- ユーザー作成
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT,UPDATE,INSERT,DELETE ON 'db_name'.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
-- テーブル作成
CREATE TABLE db_name.table_name (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL
);
-- ユーティリティー系
-- MySQLユーザー一覧の確認
SELECT User,Host FROM mysql.user;
-- データベース一覧
SHOW DATABASES;
-- データベース詳細情報一覧
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
-- データベース作成時のSQL文を表示
SHOW CREATE DATABASE db_name;
-- テーブル一覧
SHOW TABLES FROM db_name;
-- テーブルの構造を表示
DESC db_name.table_name;
-- APPデータベース定義
CREATE TABLE counters (
id INT NOT NULL AUTO_INCREMENT,
host_id INT NOT NULL,
path varchar(2047) NOT NULL DEFAULT '/',
count INT NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (id)
);
ALTER TABLE counters ADD INDEX index_host_id_and_path(host_id, path(255));
CREATE TABLE hosts (
id INT NOT NULL AUTO_INCREMENT,
host_name varchar(255) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (id)
);
ALTER TABLE hosts ADD INDEX index_id(id);
MySQL类型列表
smallint16bit整数。smallint(n) [unsigned] [zerofill]
mediumint24bit整数。mediumint(n) [unsigned] [zerofill]
int32bit整数。int(n) [unsigned] [zerofill]integerbigint64bit整数。bigint(n) [unsigned] [zerofill]
decimalパック10進数。decimal(n, d) [zerofill]dec,numericfloat浮動小数点数。4または8バイト。tinyint(n) [zerofill]
double浮動小数点数。double(n) [zerofill]
double precision倍精度浮動小数点数。double precision(n) [zerofill]realchar固定長文字列型。char(n) [binary]
varchar可変長文字列型。varchar(n) [binary]
tinytext可変長文字列型。255バイト以下。tinytext
text可変長文字列型。65535バイト以下。text
mediumtext可変長文字列型。1677215バイト以下。mediumtext
longtext可変長文字列型。4294967295バイト以下。longtext
date日付型。date
datetime日付時刻型。datetime
timestamp日付時刻型n桁。timestamp(n)
time時刻型。time
year年。2または4桁。year(n)
tinyblob8bit整数。tinyblob
blob8bit整数。blob
mediumblob8bit整数。mediumblob
longblob8bit整数。longblob
enum列挙型。enum(‘文字列1’,文字列2”,…)
set文字列セット型。set(‘文字列1’,文字列2”,…)
请注意,以下是对 http://www.k-cube.co.jp/wakaba/server/mysql_type.html 的引述。
MySQL的主要列标志
MYSQL的主要选项
MySQL的整数类型是什么?
整数型有以下5种类型。
-
- TINYINT
-
- -128から127 (符号無しの場合0から255)
-
- SMALLINT
-
- -32768から32767 (符号無しの場合0から65535)
-
- MEDIUMINT
-
- -8388608から8388607 (符号無しの場合0から16777215)
-
- INT
-
- -2147483648から2147483647 (符号無しの場合0から4294967295)
-
- 別名:INTEGER
-
- BIGINT
-
- -9223372036854775808から9223372036854775807
- (符号無しの場合0から18446744073709551615)
※ 引用:http://www.dbonline.jp/mysql/type/index1.html
※ 引用:DB在线网址http://www.dbonline.jp/mysql/type/index1.html
据说在处理MySQL时,最常用的库是Golang。
进行关系持久性
我开发的应用程序的源代码
package main
import (
"net/http"
"github.com/labstack/echo"
"github.com/labstack/echo/engine/standard"
)
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Run(standard.New(":1323"))
}
$ curl localhost:1323
Hello, World!%
请参阅相关资料
-
- Golang+Echo+dbrでMySQLのCRUDをする/JSONでDBの値を返却する話
-
- Go製のフレームワークechoを使ってJSONを返すWebサーバーを作り、GoogleAppEngineで動かす
-
- Go の echo ってWebサーバーでサクッと REST しちゃう
-
- Fast and unfancy HTTP server framework for Go (Golang).
-
- carbon ads
-
- What are the use(s) for tags in Go?
-
- golangでSQLを叩くライブラリまとめ[基本/クエリビルダ/ORM]
-
- Go database/sql tutorial
-
- Golang Cafe #4 補足 データベースアクセス(MySQL編)
-
- go-sql-driver/mysql でプレースホルダ置換をサポートしました
-
- MySQL(MariaDB) – 整数型の範囲!
-
- MySQL “show users” – how to show/list the users in a MySQL database
- Go Relational Persistence