当前位置: 首页 > wzjs >正文

外国做挂的网站是多少钱百度收录网站入口

外国做挂的网站是多少钱,百度收录网站入口,天润网站建设,如何建国际商城网站MySQL 作为目前最流行的开源关系型数据库,其 SQL 语法体系已形成行业标准,相关知识体系庞大且成熟,本文不再对 SQL 基础进行详细展开,建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作&#xff…

MySQL 作为目前最流行的开源关系型数据库,其 SQL 语法体系已形成行业标准,相关知识体系庞大且成熟,本文不再对 SQL 基础进行详细展开,建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作,旨在为开发者提供实践层面的技术指引。

在实际项目开发中,直接使用数据库驱动进行操作的场景较少,更多开发者会选择采用 ORM(对象关系映射)框架来简化开发流程。本文选用的sqlx库,作为 Go 标准sql库的增强版本,虽然不具备完整的 ORM 功能,但凭借简洁高效、轻量灵活的特性,在中小型项目或对性能要求较高的场景中备受青睐。若更倾向于功能完备的 ORM 解决方案,推荐探索GormXormEnt等业界知名的 ORM 框架,它们在自动化映射、复杂查询构建等方面表现出色,能显著提升开发效率。

安装

首先需要安装Go的MySQL驱动:

$ go get github.com/jmoiron/sqlx

sqlx或者说标准库database/sql支持的数据库不止 MySQL,任何实现了driver.Driver接口的类型都支持,比如:

  • PostgreSQL
  • Oracle
  • MariaDB
  • SQLite
  • 等其他关系数据库

要使用对应的数据库,就需要实现数据库驱动,驱动可以是你自己写的,也可以是第三方库,在使用之前你就要先使用sql.Register注册驱动,然后才能使用。不过一般下载的驱动库都会自动注册驱动,不需要你来手动注册。

func Register(name string, driver driver.Driver)

由于 MySQL 比较流行,也最为简单,所以本文采用 MySQL 来讲解,其他关系数据库操作起来都是大差不大差的,下载 MySQL 驱动库

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

连接数据库

通过sqlx.Open函数,就可以打开一个数据库连接,它接受两个参数,第一个是驱动名称,第二个就是数据源(一般简称 DSN)。

func Open(driverName, dataSourceName string) (*DB, error)

驱动名称就是注册驱动时使用的名称,需要保持一致,DSN 就是数据库的连接地址,每种数据库都可能会不一样,对于 MySQL 而言就是下面这样

db, err := sqlx.Open("mysql", "user:pass@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True")
if err != nil {panic(err)
}
defer db.Close()

查询

单条查询

var db *sqlx.DBtype Person struct {UserId   string `db:"id"`Username string `db:"name"`Age      int    `db:"age"`Address  string `db:"address"`
}func init() {conn, err := sqlx.Open("mysql", "root:wyh246859@tcp(127.0.0.1:3306)/test")if err != nil {fmt.Println("Open mysql failed", err)return}db = conn
}func main() {query()defer db.Close()
}func query() {var person Person//查询一个是Get,多个是Selecterr := db.Get(&person, "select * from user where id = ?", "12132")if err != nil {fmt.Println("query failed:", err)return}fmt.Printf("query succ:%+v", person)
}func list() {var perons []Personerr := db.Select(&perons, "select * from user")if err != nil {fmt.Println("list err", err)return}fmt.Printf("list succ,%+v", perons)
}

多条查询

var users []User
err := db.Select(&users, "SELECT id, name FROM users WHERE age > ?", 18)

插入

单条插入

func insert() {result, err := db.Exec("insert into user value (?,?,?,?)", "120230", "李四", 12, "广州市")if err != nil {fmt.Println("insert err:", err)return}id, err := result.LastInsertId()if err != nil {fmt.Println("insert err:", err)return}fmt.Println("insert succ:", id)
}

命名参数插入

_, err := db.NamedExec("INSERT INTO users(name, age) VALUES(:name, :age)", map[string]interface{}{"name": "李四", "age": 30})

更新

func update() {res, err := db.Exec("update user set name = ? where id = ?", "赵六", "120230")if err != nil {fmt.Println("update err:", err)return}eff, err := res.RowsAffected()if err != nil || eff == 0 {fmt.Println("update err:", err)return}fmt.Println("Update succ")
}

删除

func delete() {res, err := db.Exec("delete from user where id = ?", "120230")if err != nil {fmt.Println("delete err:", err)return}eff, err := res.RowsAffected()if err != nil || eff == 0 {fmt.Println("delete err:", err)return}fmt.Println("delete succ")
}

事务处理

func (db *DB) Begin() (*Tx, error) 	// 开始一个事务
func (tx *Tx) Commit() error		// 提交一个事务
func (tx *Tx) Rollback() error 		// 回滚一个事务

当开启一个事务后,为了保险都会加一句defer tx.Rollback(),如果如果过程出错了,就会回滚,要是事务成功提交了,这个回滚自然是无效的。

func main() {transation, err := db.Begin()if err != nil {fmt.Println("transation err")}defer transation.Rollback()insert()query()update()query()delete()transation.Commit()
}

参考资料:

Golang 中文学习文档 - 数据库 - MySQL

http://www.dtcms.com/wzjs/218094.html

相关文章:

  • 全网营销型推广网站建设sem是什么意思中文
  • 泰安住房和城乡建设厅网站艾瑞指数
  • 网站建设意向表今天国内新闻10条
  • 沈阳建设工程信息网可访问中项网搜索引擎广告优化
  • 汉川做网站徐州自动seo
  • 公司网站建设方案拓扑图武汉全网营销推广公司
  • 高端品牌网站设计企业网站建设深圳大鹏新区葵涌街道
  • 山河建设有限公司网站google搜索引擎入口google
  • 深圳网站建设公司平台sem培训班学费哪个好
  • 企业门户网站开发要多少钱自动点击器免费下载
  • 湛江cms建站成都seo工程师
  • 网站建设 找vx cp5173东莞网站建设公司
  • 公众号购物做网站还是小程序旅行网站排名
  • 网站文件保护怎么做网上销售平台有哪些
  • 网站建设互联网 政府系统seo入门基础教程
  • 怎么做网站和服务器吗群推广
  • 营销网站建设的原则百度营销平台
  • 青海旭云网络做网站需要多少钱大数据精准营销的策略
  • 华为云建设网站品牌策划案
  • gif图片制作器seo 页面
  • app开发网站开发教程长沙谷歌seo
  • 商城网站建设非国产手机浏览器
  • 运营一个app大概多少钱南昌seo顾问
  • 苏州网站优化山东最新资讯
  • 制作英文网站女儿考试没圈关键词
  • 做网站培训宁波seo企业推广
  • ps做专业网站南昌百度推广联系方式
  • 深圳网络营销推广中心德州seo整站优化
  • 根据网站做app营销案例分析
  • 广州牌手表网站360搜索引擎地址