
先建立以下目录结构和go源码文件:
main |- sqltools |- connmysql.go |- go.mod |- go.sum |-main.go
mian文件夹中是main.go文件和sqltools文件夹,sqltools文件夹中是connmysql.go文件,我们把数据库连接相关代码单独放在connmysql.go文件中,方便以后调用,main.go中调用connmysql.go中的数据库连接方法。
go.mod是执行go mod命令自动生成的,在命令提示行cmd进入main目录,执行以下命令:
go mod init main
从github.com下载mysql数据库的go驱动,golang连接数据库用户的驱动是:go-sql-driver。
在命令提示行cmd进入main目录下,执行以下命令:
go get -u github.com/go-sql-driver/mysql
成功执行后会将mysql驱动写入到go.mod文件中。
在数据库golang里面新建test数据库,并写入几行数据,可运行如下SQL语句:
CREATE TABLE IF NOT EXISTS `test` ( `id` int(8) NOT NULL, `content` varchar(512) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- 转存表中的数据 `test` -- INSERT INTO `test` (`id`, `content`) VALUES (0, '测试查询'), (1, '欢迎光临'), (2, '连接MySQL'), (3, 'Go微型服务'), (4, '这里是RGNote'), (5, '学习GoLang');
下面是connmysql.go文件的源码内容:
package sqltools
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func ConnectMySQL(dbUser, dbPassword, dbServer, dbName string) (db *sql.DB, err error) {
//生成数据库连接字符串
str := dbUser + ":" + dbPassword + "@(" + dbServer + ":3306)/" + dbName
//打印生成的字符串
fmt.Println("数据库连接字符串:" + str)
//建立连接
db, err = sql.Open("mysql", str)
//测试连接是否成功
err = db.Ping()
//返回数据库连接
return db, err
}
func QueryTable(db *sql.DB, tableName string) (rows *sql.Rows, err error) {
str := "select * from " + tableName
rows, err = db.Query(str)
return rows, err
}
下面是main.go源代码:
package main
import (
"main/sqltools"
"fmt"
)
const (
dbUser = "root"
dbPassword = "123456"
dbServer = "127.0.0.1"
dbName = "golang"
)
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe("localhost:8000", nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
db, err := sqltools.ConnectMySQL(dbUser, dbPassword, dbServer, dbName)
if err == nil {
fmt.Println("数据库连接成功")
//查询数据库
rows, rowsErr := sqltools.QueryTable(db, "test")
if rowsErr != nil {
fmt.Printf("查询失败")
} else {
//获取数据
for rows.Next() {
var sid string
var content string
rows.Scan(&sid, &content)
fmt.Fprintln(w, "Row "+sid+": "+content)
}
}
} else {
fmt.Println("数据库连接失败,请查询参数")
}
}
本机配置好mysql程序,并新建golang数据库,执行以下命令:
go run main.go
设置正确的数据库参数,如果连接成功,则输出:
数据库连接字符串:root:123456@(127.0.0.1:3306)/golang 数据库连接成功
此时,打开浏览器,在地址栏输入http://localhost:8000,按回车键,会输出以下结果:

将密码改为123,则数据库连接失败,则输出:
数据库连接字符串:root:123@(127.0.0.1:3306)/golang 数据库连接失败,请检查参数
以上代码在go 1.16.3调试通过。
原创文章,作者:AukCode,如若转载,请注明出处:https://www.archeCode.Com/go-implements-http-service-and-displays-query-results-of-mysql-database-on-web-page.html

