
今天给大家介绍一下Go语言,介绍及实以及实现MySQL数据库的数据操作示例,希望对大家能有所帮助!操作
一、介绍及实Go语言介绍
Go语言,数据也称为Golang,操作是介绍及实由Google开发的一种静态强类型、编译型、数据并发型,操作并具有垃圾回收功能的介绍及实编程语言。以下是数据Go语言的一些主要特点:
二、Go语言特点
语法简洁:摒弃了一些复杂的操作编程概念和冗余的语法,容易学习
高效性能:采用的介绍及实静态编译和垃圾回收机制,实现了高效的数据内存管理
并发支持:Go语言是为并发编程而设计的,原生支持goroutine和channel
强大的操作标准库:Go语言拥有丰富的标准库
社区活跃:Go语言的站群服务器社区非常活跃,有着庞大的开发者群体

三、 Go语言应用场景

服务器端开发:适合构建高性能的服务器端应用程序。因为Go语言具有轻量级的协程(goroutine)和高效的并发编程机制。例如谷歌、Dropbox和Netflix等。
网络编程:适合构建Web服务器、微服务、网络爬虫、实时通信系统等。目前Go语言成为开发高负载网络应用的首选语言。
云计算:Go语言的轻量级和快速编译的特点使得它非常适合于构建云原生应用。例如Docker和Kubernetes等。
系统编程:适合成为开发操作系统、驱动程序和嵌入式系统。
工具开发:很多工具和框架都选择使用Go语言进行开发。例如,Docker、Etcd、InfluxDB和Prometheus等工具。
人工智能和大数据分析:Go语言的IT技术网并发编程模型和内存管理机制使得它可以高效地处理大规模数据和复杂计算任务。
四、Go语言环境安装
安装Go语言环境,首先官网下载WindowsGo语言安装包
https://golang.google.cn/dl/

安装之后,cmd运行命令检查环境是否安装成功。

五、Go语言实现Mysql数据库的增删概啥
安装操作数据库依赖Go-MySQL-Driver
Go-MySQL-Driver是Go语言官方推荐的MySQL驱动, 是Go语言中使用MySQL的最佳选择
复制go get -u github.com/go-sql-driver/mysql1.
可能会报如下错误:

原因:
GO111MODULE 是 Go 1.11 引入的新版模块管理方式。
GO111MODULE 环境变量用于开启或关闭 Go 语言中的模块支持,它有 off、on、auto 三个可选值,默认为 auto
win10环境下需要执行如下命令:
复制go env -w GO111MODULE=auto1.
然后重新执行安装命令:
复制go get -u github.com/go-sql-driver/mysql1.
如果下载的时候报错:
复制connectex: A connection attempt failed because the connected party did not p1.
直接进入电脑的环境变量设置国内镜像地址。
新建环境变量GOPROXY。
值为:
复制https://mirrors.aliyun.com/goproxy/1.

点击确定后,重启命令行窗口,然后执行下载命令:

代码实现 复制package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) /* *获取mysql数据库版本 */ func showMysqlVersion() { db, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/test2?charset=utf8") if err != nil { log.Fatal(err) } db.Ping() defer db.Close() var version string errt2 := db.QueryRow("SELECT VERSION()").Scan(&version) if errt2 != nil { log.Fatal(errt2) } fmt.Println(version) } /* *查询数据测试 */ func queryTest() { // 设置数据库连接信息 db, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/test2") if err != nil { log.Fatal(err) } defer db.Close() // 执行查询 rows, err := db.Query("SELECT id, name, age FROM t_user") if err != nil { log.Fatal(err) } defer rows.Close() // 遍历查询结果 for rows.Next() { var id int var name string var age int if err := rows.Scan(&id, &name, &age); err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age) } if err := rows.Err(); err != nil { log.Fatal(err) } } /* *插入数据测试 */ func insertTest() { db, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/test2") db.Ping() defer db.Close() if err != nil { fmt.Println("connect DB error !") log.Fatalln(err) } _, err2 := db.Query("INSERT INTO t_user ( `name`, `address`, `age`) VALUES(小刘,广东,35)") if err2 != nil { log.Fatal(err2) } fmt.Println("数据插入成功") } /* *数据更新测试 */ func updateTest() { db, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/test2") db.Ping() defer db.Close() if err != nil { fmt.Println("connect DB error !") log.Fatalln(err) } _, err2 := db.Query("update t_user set name=小明2 where id=1 ") if err2 != nil { log.Fatal(err2) } fmt.Println("数据更新成功") } /* *数据更新测试 */ func delTest() { db, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/test2") db.Ping() defer db.Close() if err != nil { fmt.Println("connect DB error !") log.Fatalln(err) } _, err2 := db.Query("delete from t_user where id=2 ") if err2 != nil { log.Fatal(err2) } fmt.Println("数据删除成功") } func main(){ delTest() updateTest(); //insertTest() queryTest() showMysqlVersion() }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.
运行效果如下图:

网站模板