go連線mysql Go語言之高階篇連線mysql

2021-10-25 14:35:09 字數 2622 閱讀 8063

一、go連線mysql

1、mysql驅動

說明:sql.open()函式用來開啟乙個註冊過的資料庫驅動,go-mysql-driver中註冊了 mysql這個資料庫驅動,第二個引數是dns,它是go-mysql-driver定義的一些資料庫鏈結和配置資訊。

或#在cmd中執行安裝命令

3、建立資料庫

1、建立資料庫

mysql> create database nulige character set utf8;

query ok, 1 row affected (0.00 sec)

mysql> show databases;

| database |

| information_schema |

| mysql |

| nulige |

| performance_schema |

| test |

5 rows in set (0.00 sec)

mysql> use nulige

database changed

2、建表

mysql> create table user_info(id int(11), username varchar(20), departname varch

ar(20), create_time timestamp default "0000-00-00 00:00:00", primary key(id));

3、檢視表

mysql> show tables;

| tables_in_nulige |

| user_info |

1 row in set (0.00 sec)

4、檢視表結構

mysql> desc user_info;

| field | type | null | key | default | extra |

| id | int(11) | no | pri | 0 | |

| username | varchar(20) | yes | | null | |

| departname | varchar(20) | yes | | null | |

| create_time | timestamp | no | | 0000-00-00 00:00:00 | |

4 rows in set (0.01 sec)

5、往資料庫中插入資料

示例1:

檢查是否連線成功資料庫

stmt, err := db.prepare("insert into user_info set username=?,departname=?,create_time=?")

if err != nil {

fmt.println(err)

return

res, err := stmt.exec("nulige", "商務部", "2019-1-28")

id, err := res.lastinsertid()

if err != nil {

panic(err)

fmt.println(id)

執行結果:

mysql> select * from user_info;

| id | username | departname | create_time |

| 0 | nulige | 商務部 | 2019-01-28 00:00:00 |

1 row in set (0.00 sec)

示例2:  登入mysql,手工插入

mysql> insert into user_info (id,username,departname,create_time) values ("2","n

ulige","行政部","2019-1-11 16:23:00");

query ok, 1 row affected (0.00 sec)

mysql> select * from user_info;

| id | username | departname | create_time |

| 0 | nulige | 商務部 | 2019-01-28 00:00:00 |

| 1 | nulige | 技術部 | 2019-01-28 00:00:00 |

| 2 | nulige | 行政部 | 2019-01-11 16:23:00 |

3 rows in set (0.00 sec)

go連線mysql GO連線MySQL

go語言沒有提供官方的資料庫驅動,所以要安裝第三方函式庫。多行查詢 多行查詢db.query 執行一次查詢,返回多行結果 即rows 一般用於執行select命令。引數args表示query中的佔位引數。具體示例 查詢多條資料示例 func querymultirowdemo fmt.printf ...

go語言之高階篇建立goroutine協程

1 goroutine是什麼 goroutine是go並行設計的核心。goroutine說到底其實就是協程,但是它比執行緒更小,十幾個goroutine可能體現在底層就是五六個執行緒,go語言內部幫你實現了這些goroutine之間的記憶體共享。執行goroutine只需極少的棧記憶體 大概是4 5...

go語言之高階篇拷貝檔案案例

1 檔案案例 拷貝檔案 示例 package main import fmt io os func main srcfilename list 1 drcfilename list 1 if srcfilename drcfilename 唯讀方式開啟原始檔 sf,err1 os.open srcf...