golang操作mysql数据库

代码: mysql的增、删、改、查

package main

import (
"database/sql"
"fmt"
"strconv"
"time" _ "github.com/go-sql-driver/mysql"
) func main() { db, err := sql.Open("mysql", "root:Admin!1234@tcp(10.99.2.153:3306)/xes_nrcp?charset=utf8")
defer db.Close()
checkErr(err) //插入数据
insert(, db) //删除数据
delete(, db) //更新数据
update(, "设计部门", db) //查询数据
get(db) } func checkErr(err error) {
if err != nil {
panic(err)
}
} func get(db *sql.DB) {
rows, _ := db.Query("SELECT * FROM aaa_test")
cloumns, _ := rows.Columns() //获取列字段
for _, cloumn := range cloumns {
fmt.Print(cloumn + " ")
}
fmt.Println() //遍历返回结果
for rows.Next() {
rows.Scan(&cloumns[], &cloumns[], &cloumns[], &cloumns[])
fmt.Println(cloumns[], cloumns[], cloumns[], cloumns[])
}
} func insert(id int, db *sql.DB) {
//插入数据方式 stmt, _ := db.Prepare("INSERT aaa_test SET id=?,nameA=?,descA=?")
res, _ := stmt.Exec(id, "研发部门", "2012-12-09", time.Now())
resID, _ := res.LastInsertId()
fmt.Println(resID) //or
// stmt, _ := db.Prepare("INSERT aaa_test (id,nameA,descA,createTime)values (?,?,?,?)")
// res, _ := stmt.Exec(17, "研发部门", "2012-12-09", time.Now())
// id, _ := res.LastInsertId()
// fmt.Println(id) //or
// res, _ := db.Exec("INSERT aaa_test (id,nameA,descA)values (?,?,?)", 18, "研发部门", "2012-12-09")
// id, _ := res.LastInsertId()
// fmt.Println(id) //or
// db.Exec("INSERT aaa_test (id,nameA,descA,createTime)values (?,?,?,?)", 14, "qwe", "2012-12-09", time.Now()) //or
//db.Exec("INSERT aaa_test SET id=?,nameA=?,descA=?,createTime=?", id, "研发部门", "写写代码", time.Now()) } func delete(id int, db *sql.DB) {
stmt, err := db.Prepare("delete from aaa_test where id=?")
checkErr(err) res, err := stmt.Exec(id)
checkErr(err) affect, err := res.RowsAffected()
checkErr(err)
fmt.Println("删除数据影响行数:" + strconv.FormatInt(affect, )) } func update(id int, name string, db *sql.DB) {
stmt, err := db.Prepare("update aaa_test set nameA=? where id=?")
checkErr(err) res, err := stmt.Exec(name, id)
checkErr(err) affect, err := res.RowsAffected()
checkErr(err) fmt.Println(affect)
}

sql.Open()函数用来打开一个注册过的数据库驱动,go-sql-driver中注册了mysql这个数据库驱动,第二个参数是DSN(Data Source Name),它是go-sql-driver定义的一些数据库链接和配置信息。它支持如下格式:

  user@unix(/path/to/socket)/dbname?charset=utf8
  user:password@tcp(localhost:5555)/dbname?charset=utf8
  user:password@/dbname
  user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname

db.Prepare()函数用来返回准备要执行的sql操作,然后返回准备完毕的执行状态。

db.Query()函数用来直接执行Sql返回Rows结果。

stmt.Exec()函数用来执行stmt准备好的SQL语句

可以看到我们传入的参数都是=?对应的数据,这样做的方式可以一定程度上防止SQL注入。

golang操作mysql数据库的更多相关文章

  1. Golang原生sql操作Mysql数据库增删改查

    Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...

  2. [转帖]golang操作mysql使用总结

    golang操作mysql使用总结 https://www.cnblogs.com/hanyouchun/ 讲解的很详细~ 前言 Golang 提供了database/sql包用于对SQL数据库的访问 ...

  3. Go语言操作MySQL数据库

    Go语言操作MySQL数据库 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用 ...

  4. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  5. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  6. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

  7. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  8. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

  9. JDBC操作MySQL数据库案例

    JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

随机推荐

  1. change和onChange

    change是jquery上的绑定事件,可用于下拉框动态关联数据: $(function(){ $("#id").change(function(e){ alert($(this) ...

  2. KindEditor的使用

    KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本 ...

  3. jquery优化轮播图2

    继续优化 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. “全栈2019”Java异常第二十二章:try-with-resources语句详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  5. apollo配置中心初探

    近在搞微服务框架的开发,需要有一个配置中心来满足统一管理业务应用以及组件的配置,在此期间也使用了多个配置中心比如:spring cloud config,自研的配置中心,当然还有apollo. spr ...

  6. django参考博客学习

    网上发现其他人的一个django系列博客,和我学的一样是黑马的,写的挺不错的,转载学习一下 https://blog.csdn.net/u014745194/article/category/6989 ...

  7. Windows系统下如何在cmd命令窗口中切换Python2.7和Python3.6

    针对在同一系统下我们可能安装多个版本的Python,毕竟Python2.7与Python3.6还是有不同的需求,但是在用Cmd命令窗口是我们可能默认的系统变量环境是其中一个版本,当我们需要在cmd命令 ...

  8. Python3之urllib模块

    简介 urllib是python的一个获取url(Uniform Resource Locators,统一资源定位符),可以用来抓取远程的数据. 常用方法 (1)urlopen urllib.requ ...

  9. 在 iOS 中使用 iconfont

    如何使用自定义字体 在讲icon font之前,首先先来看看普通自定义字体是如何在ios中使用的,两个原理是一样的.这里以KaushanScript-Regular为例:   Step 1: 导入字体 ...

  10. javascriptdocument load 和document ready的区别

    页面加载完成有两种事件,一是ready , 表示文档结构已经加载完成(貋图片等非文字媒体文件),二是onload 指示页面包含图片等文件在内的所有元素都加载完成.   1.执行时间不同: 从字面的意思 ...