1. 下载安装包

go get github.com/Go-SQL-Driver/MySQL
go install github.com/Go-SQL-Driver/MySQL

2. 连接池

This essentially means that, every time you query your database, you are using a connection from a pool of connections that have been set up on application startup. These connections are reused, time and time again, and this subsequently means you aren’t creating and destroying a new connection every time you perform a query.

3. 数据库操作

连接 - db是connection

db, err := sql.Open("mysql", "<username>:<password>@tcp(127.0.0.1:3306)/<yourdatabase>")
if err != nil {
panic(err.Error())
}
defer db.Close()
// here you can use the connection, it will be closed when function returns

插入数据

insert, err := db.Query("insert into t1 values(2, 'here')")
if err != nil {
panic(err.Error())
}
defer insert.Close()

搜索

- struct. 如果外部包导入失败,尝试用tag := Tag{ID: , Name:}导入一次再改成var tag Tag...

type Tag struct {
ID int
Name string
}

- 导入

import (
"database/sql"
"fmt"
"log"
. "myproject/model"
_ "github.com/go-sql-driver/mysql"
)

- 程序

results, err := db.Query("Select * from t1")
if err != nil {
panic(err.Error())
}
for results.Next() {
//tag := Tag{ID: 1, Name: "hhh"}
var tag Tag
err = results.Scan(&tag.ID, &tag.Name)
if err != nil {
panic(err.Error())
}
log.Printf(tag.Name)
} -----------From Others
items := make([]*SomeStruct, 0, 10)
var ida, idb uint
for rows.Next() {
err = rows.Scan(&ida, &idb)
if err != nil { /* error handling */}
items = append(items, &SomeStruct{ida, idb})
}

- QueryRow

QueryRow executes a query that is expected to return at most one row. QueryRow calls Query, and then wraps the results in an sql.Row.

var tag Tag
// Execute the query
err = db.QueryRow("SELECT * FROM t1 where num = ?", ).Scan(&tag.ID, &tag.Name)
if err != nil {
panic(err.Error())
} log.Println(tag.ID)
log.Println(tag.Name)

Prepare Statement (Example)

stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
res, err := stmt.Exec("zhja", "研发", "2016-06-17")

获取最后一个自增ID

id, err := res.LastInsertId()

Golang - 数据库操作的更多相关文章

  1. golang数据库操作初体验

    在golang中,提供了标准的数据库接口database/sql包,做过数据库开发的应该知道,不同的数据库有不同的数据库驱动.比如mysql等,我们可以去找 https://golang.org/s/ ...

  2. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  3. 百亿数据百亿花, 库若恒河沙复沙,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang数据库操作实践EP12

    Golang可以通过Gorm包来操作数据库,所谓ORM,即Object Relational Mapping(数据关系映射),说白了就是通过模式化的语法来操作数据库的行对象或者表对象,对比相对灵活繁复 ...

  4. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  5. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  6. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  7. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

随机推荐

  1. Eclipse软件使用说明

    http://www.ziqiangxuetang.com/eclipse/eclipse-explore-menus.html

  2. idea入手配置

    一.编码配置 utf-8 二.注释模板(Java Doc) 三.Live Templates 快捷键模板, 如配置logger,(类似 sout)

  3. tcpcopy + tcpdump 离线回放

    简单来说,就是用tcpdump记录线上请求,用tcpcopy来重放,如下图所示:   有关 tcpdump 的命令详解请参考: http://www.cnblogs.com/ggjucheng/arc ...

  4. Differences between page and segment

    https://techdifferences.com/difference-between-paging-and-segmentation-in-os.html how does paging so ...

  5. :after伪类+content内容生成经典应用举例——张鑫旭

    一.简单说说content内容生成 content内容生成就是通过content属性生成内容,content属性早在CSS2.1的时候就被引入了,可以使用:before以及:after伪元素生成内容. ...

  6. Git 学习之git 分支(三)

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  7. Laravel 支付宝异步通知 419报错

    支付宝在支付是有服务器通知和网页通知,一个在前端展示,一个在后台操作, laravel框架自带csrf_token验证. 所以我们需要把支付的路由跳过验证 可以在中间键的csrf配置中更改

  8. nodejs学习 之 安装

    1. 官网找最新适合自己电脑的版本  下载  https://nodejs.org/en/download/ 2.我的是win7 x64选择了msi的安装包,安装过程修改安装的目标目录,最好不要放在c ...

  9. AWS CSAA -- 03 Identity Access Management IAM

    009 IAM 101 012 IAM Summary 问题汇总: Lab1:对root account进行加固 Lab 2:利用CloudWatch设置BillingAlarm

  10. HAproxy simple

    下载地址 start install: wget     http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz tar   -xf  ...