0

0

golang mysql操作介绍

尚

发布时间:2020-02-26 17:39:25

|

3307人浏览过

|

来源于csdn

转载

go(又称golang)是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。下面就来由go入门教程栏目介绍一些关于mysql的操作。

golang mysql操作介绍

go操作mysql数据库,用的库是 go-sql-driver/mysql,安装直接go get

go get -u github.com/go-sql-driver/mysql

sql.DB

DB类型可用的函数有:

立即学习go语言免费学习笔记(深入)”;

1、Query(c string, args interface{} …) (*Rows, error),常用于SELECT语句

2、Exec(c string, args interface{} …) (*Rows, error),常用与UPDATE和INSERT

3、Prepare(c string) (*Stmt, error),其他语句,也可以用于执行上述语句,返回Stmt指针

sql.Stmt

jquery网站功能操作引导
jquery网站功能操作引导

网站功能介绍步骤,可以引导用户该怎么操作,或者应该做什么

下载

Stmt是准备好的语句,可以执行数据库语句操作,常用函数有:

Exec(args interface{} …) (Result, error),给定参数并执行准备好的语句,然后返回语句的总结果

//...
	stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)")
	if err != nil {
		panic(err)
	}
	defer stmt.Close()
	_, err := stmt.Exec("laoli", "123456")
	if err != nil {
		panic(err)
	}
//...
//...
	stmt, err := db.Perpare("DELETE FROM User")
	if err != nil {
		panic(err)
	}
	defer stmt.Close()
	_, err := stmt.Exec()
	if err != nil {
		panic(err)
	}

Query(args interface{} …) (*Rows, error),给定参数并执行准备好的语句,返回行结果,比方说SELECT操作就必须用这个函数调用。

sql.Rows

Rows是sql语句执行返回的表,Rows会占用缓存,Rows.Next()里,如果返回false,则会自动释放缓存。
看一下源码:

// 源码
func (rs *Rows) Next() bool {
	var doClose, ok bool
	withLock(rs.closemu.RLocker(), func() {
		doClose, ok = rs.nextLocked()
	})
	if doClose {
		rs.Close() //在这里释放掉了
	}
	return ok
}

例子:

package main

import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
)

var db *sql.DB
func mian() {
	db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test")
	if err := db.Ping(); err != nil {
		panic(err)
	}
}

func Insert() {
	_, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456")
	if err != nil {
		panic(err)
	}
}

func SelectRow() {
	rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang")
	if err != nil {
		panic(err)
	}
	//defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存
	var user string
	var pwd string
	for rows.Next() {
		row.Scan(&user, &pwd)
	}
	print(user, pwd)
}

更多go语言知识请关注php中文网go语言教程栏目。

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
golang socket 编程
golang socket 编程

共2课时 | 0.1万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

golang和swoole核心底层分析
golang和swoole核心底层分析

共3课时 | 0.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号