golang学习----数据库操作

golang 操作数据库

golang操作数据库的过程十分简单,以下是一个简单的增删改查的操作,这里我们使用MySQL数据库为例。

连接数据库

? 连接数据库我们首先需要下载相应数据库的驱动,这里我们选择的是MySQL数据库驱动,所以我们先去拉取驱动。在这之前我们需要有git-下载地址: https://git-scm.com/ ,若下载速度慢,建议使用如下地址 https://npm.taobao.org/mirrors/git-for-windows/ 选择相应的版本下载即可。

  1. go get github.com/go-sql-driver/mysql 拉取驱动,若是其他数据库可以修改后面的名称或去相应的github上寻找
  2. import ( _ "github.com/go-sql-driver/mysql") 在代码中导入这个驱动包,这么做会调用mysql包中的init方法。
  3. var db *sql.DB
    func conn(){
    open, err := sql.Open("mysql", "user:[email protected](127.0.0.1:3306)/demo_db") // 这里的地址若是本地3306接口可以写成user:[email protected](127.0.0.1:3306)/demo_db
    if err!=nil {   log.Fatal(err)   panic(err)}
    db = open
    }

数据操作

插入数据

//  数据添加
func add(){
    _, err := db.Exec("insert into user (name, age, email) value (?,?,?)", "张三", 20, "[email protected]")
    if err!=nil {
        fmt.Println(err)
        panic(err)
    }
}

删除数据

//  数据删除
func remove(){
    exec, err := db.Exec("delete from user where id = ?", 6)
    if err != nil {
        fmt.Println(err)
        panic(err)
    }
    fmt.Println(exec.RowsAffected())
}

修改数据

func modify(){
    exec, err := db.Exec("update user set name = ?,age = ? where id = ?", "babiqus", "22", 6)
    if err!=nil {
        fmt.Println(err)
        panic(err)
    }
    fmt.Println(exec.RowsAffected())
}

查询数据

func query() {
    query, err := db.Query("select * from user")
    if err!=nil {
        log.Fatal(err)
        panic(err)
    }
    defer query.Close()
    // 必须要把 query 里的内容读完,或者显式调用 Close() 方法,
    // 否则在 defer 的 rows.Close() 执行之前,连接永远不会释放
    var userList []User
    for query.Next(){
        user := new(User)
        err := query.Scan(&user.id,&user.name,&user.age,&user.email)
        if err != nil{
            log.Fatal(err)
        }
        userList = append(userList, *user)
    }
    for _, value := range userList {
        fmt.Println(value)
    }
}

使用

func init(){
    conn()
}
func main() {
    //add()
    //modify()
    //remove()
    query()
    defer db.Close()
}

原文地址:https://www.cnblogs.com/bananafish/p/12079521.html

时间: 2024-10-28 15:03:38

golang学习----数据库操作的相关文章

Python学习—数据库操作

python2中操作数据库:MySQLdbpython3中操作数据库:pymysql python接连数据库 1.创建数据库连接: mysql.connect()函数 2.执行数据库操作:执行数据库操作,我们要使用连接对象获得一个cursor(游标)对象: 用连接对象的cursor()方法返回一个游标对象 接下来,我们会使用cursor提供的方法来进行工作. 这些方法包括两大类:1.执行命令,2.接收返回值 执行命令: callproc(self, procname, args):用来执行存储过

django学习-数据库操作接口API--(CRUD)

初试API(数据库操作接口CRUD) 现在我们进入交互式python命令行,尝试一下django为你创建的各种API,通过以下命令打开python命令行: py -3 manage.py shell进入python命令行 D:\django\mysite>py -3 manage.py shell Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32 Type &quo

MSSQL基础学习--数据库操作

1.创建单一数据库 CREATE DATABASE test ON ( NAME = main_dat, --数据库名称 FILENAME = 'e:/program files/Microsoft sql server/mssql/data/maindat.mdf', --物理路径 SIZE = 10, --初始容量,默认单位是MB MAXSIZE = 50, --最大容量 FILEGROWTH = 5 --增长值 ) LOG ON ( NAME = 'main_log', FILENAME

golang 查询数据库操作

SQL.Open only creates the DB object, but dies not open any connections to the database. If you want to test your connections you have to execute a query to force opening a connection. The common way for this is to call Ping() on your DB object. See h

学习MySQL之数据库操作(一)

所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用. ##数据库操作 ##创建数据库 myTest ,并将数据库字符集设为GBK CREATE DATABASE myTest CHARSET gbk; ##进入数据库 myTest USE myTest ; ##创建数据库表 t_dept,并将表的字符集设为GBK,同时,char和test字段的字符集,自动变为gbk CREATE TABLE t_dept ( deptno INT (11)

PHP学习之-数据库操作

PHP学习之-数据库操作 1.PHP支持那些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等,这些数据库PHP都能够安装扩展来支持,一般情况下常说的LAMP架构指的是:Linux.Apache.Mysql.PHP,因此Mysql数据库在PHP中的应用非常广泛,我们会在本章中简单的了解Mysql的操作方法.

Android Afinal框架学习(一) FinalDb 数据库操作

框架地址:https://github.com/yangfuhai/afinal 对应源码: net.tsz.afinal.annotation.sqlite.* net.tsz.afinal.db.sqlite.* net.tsz.afinal.db.table.* net.tsz.afinal.utils.ClassUtils.net.tsz.afinal.utils.FieldUtils FinalDb 建库 FinalDb db = FinalDb.create(context, "my

Android学习--------实现增删改查数据库操作以及实现类似微信好友对话管理操作

最近的一个实验用到东西挺多,特地总结一下. 要求功能: 1.第一个页面添加歌曲名和歌手,跳到第二个页面列表显示所有记录,使用sqlite数据库 2.对于第二个页面显示的信息可以进行删除和修改操作,并自动刷新 最后我做的效果: 长按列表项弹出单个管理的菜单,像微信好友对话管理一样. 删除时可以直接删除这一条并在列表中直接显示,更新时弹出对话框更新内容提交后在列表中重新显示. 做此例遇到的困难: 1.菜单获取上下文 2.获取对话框中的内容 3.对话框按钮添加监听事件-----注意包不要导错:impo

android菜鸟学习笔记20----Android数据存储(四))Android数据库操作

Android内置了一个名为SQLite的关系型数据库,这是一款轻量型的数据库,操作十分简便.SQLite与别的数据库不同的是,它没有数据类型.可以保存任何类型的数据到你所想要保存的任何表的任何列中.但它又支持常见的类型比如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB...等. 唯一的例外是:integer primary key 此字段只能存储64位整数. 在JAVA项目中,要使用JDBC操作数据库需要加载数据库驱动,连接数据库等操作.Android简化