提交 2d2b34ac 编写于 作者: 彭世瑜's avatar 彭世瑜

fix

上级 b95fedf6
# 第二章 Golang 环境安装 # 1.2、Golang 环境安装
## Go语言开发工具 ## Go语言开发工具
......
# 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
}
}
```
# 第四章 Golang 项目管理 # 1.4、Golang 项目管理
## go项目管理工具 ## go项目管理工具
......
# 第三章 Golang 运行代码 # 1.3、Golang 运行代码
## Golang执行流程 ## Golang执行流程
......
# 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
}
```
# 第一章 Golang 概述 # 1.1、Golang 概述
Go言语 Golang Go言语 Golang
......
...@@ -8,45 +8,51 @@ ...@@ -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 并发编程-协程](/blog/golang/golang-concurrency-goroutines.md)
- [Golang 并发编程-channel](/blog/golang/golang-concurrency-channel.md) - [Golang 并发编程-channel](/blog/golang/golang-concurrency-channel.md)
...@@ -58,7 +64,7 @@ ...@@ -58,7 +64,7 @@
- [Golang 并发编程-Timer定时器](/blog/golang/golang-concurrency-Timer.md) - [Golang 并发编程-Timer定时器](/blog/golang/golang-concurrency-Timer.md)
- [Golang 并发编程-Ticker 周期执行](/blog/golang/golang-concurrency-Ticker.md) - [Golang 并发编程-Ticker 周期执行](/blog/golang/golang-concurrency-Ticker.md)
二十一章 Golang标准库 章 Golang标准库
- [Golang标准库-os](/blog/golang/golang-standard-os.md) - [Golang标准库-os](/blog/golang/golang-standard-os.md)
- [Golang标准库-io输入输出](/blog/golang/golang-standard-io.md) - [Golang标准库-io输入输出](/blog/golang/golang-standard-io.md)
...@@ -72,8 +78,15 @@ ...@@ -72,8 +78,15 @@
- [Golang标准库-time](/blog/golang/golang-standard-time.md) - [Golang标准库-time](/blog/golang/golang-standard-time.md)
- [Golang标准库-json](/blog/golang/golang-standard-json.md) - [Golang标准库-json](/blog/golang/golang-standard-json.md)
- [Golang标准库-xml](/blog/golang/golang-standard-xml.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/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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册