一、环境准备

在Go语言中连接MySQL数据库通常使用database/sql包配合一个MySQL驱动,比如github.com/go-sql-driver/mysql
安装github.com/go-sql-driver/mysql
go get github.com/go-sql-driver/mysql

二、连接及增删改查

package main

import (
"database/sql"
"fmt"
"log" _ "github.com/go-sql-driver/mysql"
) //连接数据库使用sql.open(),然后使用ping来测试数据库是否可用
func Connect_mysql () *sql.DB{
// 数据库连接字符串 (DSN) 格式为: user:password@tcp(host:port)/dbname?charset=utf8mb4
dsn := "root:root@tcp(127.0.0.1:3306)/go_study?charset=utf8mb4"
db, err := sql.Open("mysql",dsn)
if err!=nil {
log.Println("mysql connect erro: ",err)
return nil
}
if db.Ping()!=nil {
log.Println("ping err :")
return nil
}
fmt.Println("mysql connect success!")
return db } //查询操作,使用Query,因为查询的数据会返回很多行,所以Query会返回一个sql.Rows的数据集
//为什么不使用Exec?因为exec返回的是一个result,通常是包含改变的位置信息。
func Select_(db *sql.DB) {
select_sql := "select username,sex from user"
rows ,er := db.Query(select_sql)
if er!=nil {
fmt.Println("查询失败:",er)
}
//查询结果的处理主要使用两个函数,rows.Next()遍历每条数据,rows.Scan()将每一条数据的信息输入进参数里面。
for rows.Next(){
// var id int
// var emil string
var username string
var sex string
erro :=rows.Scan(&username,&sex) //一条数据有几个字段就要Scan几个参数进行接收
if erro !=nil{
fmt.Println("Rows scan err:",erro)
break
}
fmt.Printf("username:%s sex : %s\n",username,sex) }
}
func main() {
DB :=Connect_mysql()
defer DB.Close()
// 查询操作 //插入
insert_sql := "insert into user (username,sex,email) values(?,?,?)"
_ , err := DB.Exec(insert_sql,"xrf","girl","110")
if err !=nil {
fmt.Println("插入数据失败:",err)
} //查询
Select_(DB) update := "update user set sex=? where username = ?"
DB.Exec(update,"boy","xrf")
fmt.Println("更改之后:")
Select_(DB) del:= "delete from user where user_id = ?"
DB.Exec(del,2)
fmt.Println("删除:")
Select_(DB) }

Go 编程-mysql数据库操作的更多相关文章

  1. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  2. Python数据存储 — MySQL数据库操作

    本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...

  3. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  4. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  5. 设计模式 - 单例模式mysql数据库操作类

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

  6. MySQL数据库操作常用命令

    MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...

  7. Python/MySQL(四、MySQL数据库操作)

    Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...

  8. Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  9. Python进行MySQL数据库操作

    最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...

  10. Python3:sqlalchemy对mysql数据库操作,非sql语句

    Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...

随机推荐

  1. Oracle 日期减年数、两日期相减

    -- 日期减年数 SELECT add_months(DEF_DATE,12*USEFUL_LIFE) FROM S_USER --两日期相减 SELECT round(sysdate-PEI.STA ...

  2. 小程序-浅谈云函数获取数据和云数据库api获取数据的区别

    区别:在于条数的限制,云数据库api获取数据限制20条以内,云函数限制100条以内 index.wxml <button bindtap="shujukuget">数据 ...

  3. 云服务器安装宝塔Linux面板教程(建议收藏)

    ​ 一.简介 宝塔面板是一款简单好用的服务器运维面板.它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能.对于新手用云服务器来建站的话,宝塔面板是一个非 ...

  4. Windows 10 LTSC启用Microsoft Store的方法

    新建msreg.bat文件,并编辑内容如下: ========== @echo off :: BatchGotAdmin :------------------------------------- ...

  5. oeasy教您玩转linux 010211 牛说 cowsay

    我们来回顾一下 上一部分我们都讲了什么? 软件包工具是 apt 软件包不但能下载,也能升级,还能删除 专门管理软件包的 aptitude 这次我们下载个牛说 cowsay: sudo apt inst ...

  6. Excel VBA编程常用语句300句

    定制模块行为 1. Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Opt ...

  7. 网络基础 登录对接CAS-跨域导致的一个意想不到的Bug

    登录对接CAS-跨域导致的一个意想不到的Bug 背景描述 业务需求是平台登录,接入Cas验证 问题描述 平台登录页,点击登录方式,跳转Cas登录页,提交登录请求,结果发现,又返回平台登录页: 再次点击 ...

  8. Jenkins 添加Linux固定代理节点

    实践环境 Jenkins 2.304 jdk-8u131-linux-x64.rpm centos-release-7-9.2009.1.el7.centos.x86_64 操作步骤 安装JDK 在预 ...

  9. 搭建lnmp环境-php(第二步)

    系统环境:centos7 php7.4 编译安装太繁琐,这里用yum安装即可 ===========yum形式安装======== # 安装EPEL源(nginx那里已安装了,跳过) yum inst ...

  10. win10安装和使用wireshark

    win10安装和使用wiresharkhttps://blog.csdn.net/qq_34732729/article/details/105126146https://blog.csdn.net/ ...