From 2d2b34acea592b3816af012096a15958e98fde84 Mon Sep 17 00:00:00 2001 From: pengshiyu <1940607002@qq.com> Date: Tue, 11 Oct 2022 22:43:03 +0800 Subject: [PATCH] fix --- blog/golang/golang-install.md | 2 +- blog/golang/golang-mysql.md | 140 ++++++++++++++++++++++++++++ blog/golang/golang-project.md | 2 +- blog/golang/golang-run.md | 2 +- blog/golang/golang-standard-math.md | 109 ++++++++++++++++++++++ blog/golang/golang-start.md | 2 +- blog/golang/index.md | 57 ++++++----- 7 files changed, 288 insertions(+), 26 deletions(-) create mode 100644 blog/golang/golang-mysql.md create mode 100644 blog/golang/golang-standard-math.md diff --git a/blog/golang/golang-install.md b/blog/golang/golang-install.md index d1d14cd..3c96692 100644 --- a/blog/golang/golang-install.md +++ b/blog/golang/golang-install.md @@ -1,4 +1,4 @@ -# 第二章 Golang 环境安装 +# 1.2、Golang 环境安装 ## Go语言开发工具 diff --git a/blog/golang/golang-mysql.md b/blog/golang/golang-mysql.md new file mode 100644 index 0000000..cf1e2a2 --- /dev/null +++ b/blog/golang/golang-mysql.md @@ -0,0 +1,140 @@ +# Golang操作MySQL数据库 + +## 准备数据库和数据表 + +下载安装数据库 + +https://dev.mysql.com/downloads/mysql/ + + +登录数据库 + +```bash +$ mysql -uroot -p +``` + +初始化数据 + +```sql +-- 创建数据库 +create database go_db; + +use go_db; + +-- 创建数据表 +create table user_tbl( + id integer primary key auto_increment, + username varchar(20), + password varchar(20) +); + +desc user_tbl; ++----------+-------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++----------+-------------+------+-----+---------+----------------+ +| id | int | NO | PRI | NULL | auto_increment | +| username | varchar(20) | YES | | NULL | | +| password | varchar(20) | YES | | NULL | | ++----------+-------------+------+-----+---------+----------------+ +3 rows in set (0.03 sec) + +-- 插入初始化数据 +insert into user_tbl(username, password) values("Tom", "123456"); +insert into user_tbl(username, password) values("Kite", "abcdef"); + +select * from user_tbl; ++----+----------+----------+ +| id | username | password | ++----+----------+----------+ +| 1 | Tom | 123456 | +| 2 | Kite | abcdef | ++----+----------+----------+ +2 rows in set (0.01 sec) +``` + +## 安装MySQL驱动 + +https://pkg.go.dev/github.com/go-sql-driver/mysql + +``` +go get github.com/go-sql-driver/mysql +``` + +## 获得数据库链接 + +```go +package main + +import ( + "database/sql" + "fmt" + "time" + + _ "github.com/go-sql-driver/mysql" +) + +func main() { + db_url := "root:123456@tcp(127.0.0.1:3306)/go_db?charset=utf8mb4&parseTime=true" + + db, err := sql.Open("mysql", db_url) + if err != nil { + panic(err) + } + + defer db.Close() + + // 最大连接时长 + db.SetConnMaxLifetime(time.Minute * 3) + // 最大连接数 + db.SetMaxOpenConns(10) + // 空闲连接数 + db.SetMaxIdleConns(10) + + // 尝试与数据库建立连接 + err = db.Ping() + if err != nil { + panic(err) + } + + fmt.Printf("db: %v\n", db) + +} + +``` + +## 插入数据 + +```go +package main + +import ( + "database/sql" + "fmt" + + _ "github.com/go-sql-driver/mysql" +) + +func main() { + db_url := "root:123456@tcp(127.0.0.1:3306)/go_db?charset=utf8mb4&parseTime=true" + + db, err := sql.Open("mysql", db_url) + if err != nil { + panic(err) + } + + defer db.Close() + + sql := "insert into user_tbl (username, password) values (?, ?)" + + result, sqlErr := db.Exec(sql, "Jack", "jjyy") + if sqlErr != nil { + panic(sqlErr) + } else { + id, _ := result.LastInsertId() + fmt.Printf("id: %v\n", id) + // id: 3 + } +} + +``` + diff --git a/blog/golang/golang-project.md b/blog/golang/golang-project.md index 8aef078..e17a8ff 100644 --- a/blog/golang/golang-project.md +++ b/blog/golang/golang-project.md @@ -1,4 +1,4 @@ -# 第四章 Golang 项目管理 +# 1.4、Golang 项目管理 ## go项目管理工具 diff --git a/blog/golang/golang-run.md b/blog/golang/golang-run.md index b2d0fcb..0945312 100644 --- a/blog/golang/golang-run.md +++ b/blog/golang/golang-run.md @@ -1,4 +1,4 @@ -# 第三章 Golang 运行代码 +# 1.3、Golang 运行代码 ## Golang执行流程 diff --git a/blog/golang/golang-standard-math.md b/blog/golang/golang-standard-math.md new file mode 100644 index 0000000..92ec5b4 --- /dev/null +++ b/blog/golang/golang-standard-math.md @@ -0,0 +1,109 @@ +# Golang 标准库-math + +math 包提供了一些常量和一些有用的数学计算函数 + +## 常量 + +示例 + +```go +package main + +import ( + "fmt" + "math" +) + +func main() { + fmt.Printf("math.Pi: %v\n", math.Pi) + // math.Pi: 3.141592653589793 + + fmt.Printf("math.MinInt: %v\n", math.MinInt) + // math.MinInt: -9223372036854775808 + + fmt.Printf("math.MaxInt: %v\n", math.MaxInt) + // math.MaxInt: 9223372036854775807 + +} + +``` + +## 数学函数 + +```go +package main + +import ( + "fmt" + "math" +) + +func main() { + + // 取绝对值 + fmt.Printf("math.Abs(-10): %v\n", math.Abs(-10)) + // math.Abs(-10): 10 + + // x的y次方 + fmt.Printf("math.Pow(2, 3): %v\n", math.Pow(2, 3)) + // math.Pow(2, 3): 8 + + // 10的n次方 + fmt.Printf("math.Pow10(3): %v\n", math.Pow10(3)) + // math.Pow10(3): 1000 + + // 开平方 + fmt.Printf("math.Sqrt(64): %v\n", math.Sqrt(64)) + // math.Sqrt(64): 8 + + // 开立方 + fmt.Printf("math.Cbrt(27): %v\n", math.Cbrt(27)) + // math.Cbrt(27): 3 + + // 向上取整 + fmt.Printf("math.Ceil(3.14): %v\n", math.Ceil(3.14)) + // math.Ceil(3.14): 4 + + // 向下取整 + fmt.Printf("math.Floor(8.75): %v\n", math.Floor(8.75)) + // math.Floor(8.75): 8 + + // 取余 + fmt.Printf("math.Mod(10, 3): %v\n", math.Mod(10, 3)) + // math.Mod(10, 3): 1 + + // 分别取整数和小数部分 + fmt.Println(math.Modf(3.14)) + // 3 0.14000000000000012 +} + +``` + +随机数 + +```go +package main + +import ( + "fmt" + "math/rand" + "time" +) + +func init() { + // 设置随机数种子 + rand.Seed(time.Now().UnixNano()) +} + +func main() { + + // 随机数 + fmt.Println(rand.Int()) + // 422547814534915217 + + // 指定随机数范围[0,n) + fmt.Println(rand.Intn(10)) + // 8 +} + +``` diff --git a/blog/golang/golang-start.md b/blog/golang/golang-start.md index d536043..c2e5c6a 100644 --- a/blog/golang/golang-start.md +++ b/blog/golang/golang-start.md @@ -1,4 +1,4 @@ -# 第一章 Golang 概述 +# 1.1、Golang 概述 Go言语 Golang diff --git a/blog/golang/index.md b/blog/golang/index.md index 9838f28..16a116c 100644 --- a/blog/golang/index.md +++ b/blog/golang/index.md @@ -8,45 +8,51 @@ ## 目录 -[第一章 Golang 概述](blog/golang/golang-start.md) +第一章 语言基础 -[第二章 Golang 环境安装](blog/golang/golang-install.md) +- [1.1、Golang 概述](/blog/golang/golang-start.md) -[第三章 Golang 运行代码](/blog/golang/golang-run.md) +- [1.2、Golang 环境安装](/blog/golang/golang-install.md) -[第四章 Golang 项目管理](/blog/golang/golang-project.md) +- [1.3、Golang 运行代码](/blog/golang/golang-run.md) -[第五章 Golang标识符、关键字、命名规则](/blog/golang/golang-identifier.md) +- [1.4、Golang 项目管理](/blog/golang/golang-project.md) -[第六章 Golang变量](/blog/golang/golang-variable.md) +第二章 基本语法 -[第七章 Golang 常量](/blog/golang/golang-constant.md) +- [第五章 Golang标识符、关键字、命名规则](/blog/golang/golang-identifier.md) -[第八章 Golang 数据类型](/blog/golang/golang-type.md) +- [第六章 Golang变量](/blog/golang/golang-variable.md) -[第九章 Golang 格式化输出](/blog/golang/golang-format.md) +- [第七章 Golang 常量](/blog/golang/golang-constant.md) -[第十章 Golang 运算符](/blog/golang/golang-operator.md) +- [第八章 Golang 数据类型](/blog/golang/golang-type.md) -[第十一章 Golang 流程控制](/blog/golang/golang-process.md) +- [第九章 Golang 格式化输出](/blog/golang/golang-format.md) -[第十二章 Golang 数组 array](/blog/golang/golang-array.md) +- [第十章 Golang 运算符](/blog/golang/golang-operator.md) -[第十三章 Golang 切片 slice](/blog/golang/golang-slice.md) +- [第十一章 Golang 流程控制](/blog/golang/golang-process.md) -[第十四章 Golang map](/blog/golang/golang-map.md) +第三章 数据结构 -[第十五章 Golang 函数 func](/blog/golang/golang-function.md) +- [第十二章 Golang 数组 array](/blog/golang/golang-array.md) -[第十六章 Golang 指针 pointer ](/blog/golang/golang-pointer.md) +- [第十三章 Golang 切片 slice](/blog/golang/golang-slice.md) -[第十七章 Golang 结构体 struct](/blog/golang/golang-struct.md) +- [第十四章 Golang map](/blog/golang/golang-map.md) -[第十八章 Golang接口 interface](/blog/golang/golang-interface.md) +- [第十五章 Golang 函数 func](/blog/golang/golang-function.md) -[第十九章 Golang包 package](/blog/golang/golang-package.md) +- [第十六章 Golang 指针 pointer ](/blog/golang/golang-pointer.md) -第二十章 Golang 并发编程 +- [第十七章 Golang 结构体 struct](/blog/golang/golang-struct.md) + +- [第十八章 Golang接口 interface](/blog/golang/golang-interface.md) + +- [第十九章 Golang包 package](/blog/golang/golang-package.md) + +第四章 Golang 并发编程 - [Golang 并发编程-协程](/blog/golang/golang-concurrency-goroutines.md) - [Golang 并发编程-channel](/blog/golang/golang-concurrency-channel.md) @@ -58,7 +64,7 @@ - [Golang 并发编程-Timer定时器](/blog/golang/golang-concurrency-Timer.md) - [Golang 并发编程-Ticker 周期执行](/blog/golang/golang-concurrency-Ticker.md) -第二十一章 Golang标准库 +第五章 Golang标准库 - [Golang标准库-os](/blog/golang/golang-standard-os.md) - [Golang标准库-io输入输出](/blog/golang/golang-standard-io.md) @@ -72,8 +78,15 @@ - [Golang标准库-time](/blog/golang/golang-standard-time.md) - [Golang标准库-json](/blog/golang/golang-standard-json.md) - [Golang标准库-xml](/blog/golang/golang-standard-xml.md) +- [Golang标准库-math](/blog/golang/golang-standard-math.md) + +[Golang操作MySQL数据库](/blog/golang/golang-mysql.md) + +第六章 MySQL数据库 + https://www.bilibili.com/video/BV1ME411Y71o?p=27&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da -https://www.bilibili.com/video/BV1zR4y1t7Wj/?p=98&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da \ No newline at end of file + +https://www.bilibili.com/video/BV1zR4y1t7Wj/?p=103&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da \ No newline at end of file -- GitLab