小小千想和您聊一聊

当前位置: 首页> 技术分享> Gin访问和使用数据库

Gin访问和使用数据库

 在使用gin框架进行开发项目时,会使用到数据库进行数据存储。本节课我们来学习如何使用gin框架链接和操作数据库。

### MySQL数据库的安装
在使用MySQL数据库之前,首先要安装MySQL数据库。

MySQL官方下载链接:[https://dev.mysql.com/downloads/mysql/](https://dev.mysql.com/downloads/mysql/)

国内镜像下载链接:[http://mirrors.sohu.com/](http://mirrors.sohu.com/)在国内镜像列表中,有windows,macOS,linux全部的版本。可以自行选择下载。

### Gin链接和使用MySQL数据库

* 1、安装MySQL驱动
想要在Gin中操作MySQL,首先要有MySQL驱动程序。该驱动程序需要下载:
```
go get "github.com/go-sql-driver/mysql"
```

* 2、创建数据库
在已经安装好的MySQL数据库中,创建一个新的数据库,如:ginsql。
在终端下登录mysql数据库,并创建ginsql数据库,具体命令如下:
```
mysql -uroot -p
create database ginsql;
```
使用第一条命令进行登录,需要输入密码。
使用create database ginsql即可创建一个名字为ginsql的新的数据库。

* 3、在gin中使用编程语言进行连接数据库
在gin中连接和操作mysql与在其他框架中连接操作mysql没有什么区别,分为主要的几个步骤:
    * a、引入mysql驱动程序:使用import将mysql驱动默认引入,具体语法如下:
        
        ```
        import _ "github.com/go-sql-driver/mysql"
        ```
        
    * b、拼接链接字符:在程序中链接mysql,需要按照一定的规则进行用户名,密码等信息的组合。
    
        ```
        connStr := "root:12345678@tcp(127.0.0.1:3306)/ginsql"
        ```
        
    * c、使用sql.Open创建数据库连接
    
        ```
        db, err := sql.Open("mysql", connStr)
        if err != nil {
            log.Fatal(err.Error())
            return
        }
        ```
        
* 4、操作数据库
正确创建了数据库链接后,可以执行db对象支持的相关数据库操作,比如:创建表结构,查询数据,插入数据,删除操作等。举例如下:
    * a、 创建数据库表
    
        ```
    _, err = db.Exec("create table person(" +
        "id int auto_increment primary key," +
        "name varchar(12) not null," +
        "age int default 1" +
        ");")
    if err != nil {
        log.Fatal(err.Error())
        return
    }
        ```
    
    * b、向数据库中插入数据
    
        ```
    _, err = db.Exec("insert into person(name,age) "+
        "values(?,?);", "Lily", 15)
    if err != nil {
        log.Fatal(err.Error())
        return
    } else {
        fmt.Println("数据插入成功")
    }
        ```
        
    * c、查询数据库记录
    ```
    rows, err := db.Query("select id,name,age from person")
    if err != nil {
        log.Fatal(err.Error())
        return
    }
scan:
    if rows.Next() {
        //columns, err := rows.Columns()
        //fmt.Println(columns)
        person := new(Person)
        err = rows.Scan(&person.Id, &person.Name, &person.Age)
        if err != nil {
            log.Fatal(err.Error())
            return
        }
        fmt.Println(person.Id, person.Name, person.Age)
        goto scan
    }
    ```

附:

课程全部文档均可以在千锋教育Go语言day100学习库获取,学习库链接:[Golang 100天从新手到大师](https://github.com/rubyhan1314/Golang-100-Days)

视频教程可以访问B站主页进行学习:[B站](https://space.bilibili.com/408228716)

Go语言课程专题学习网站:[Go语言专题学习](https://www.qfgolang.com/)

上一篇:Scala系列之继承

下一篇:中间件的编写与使用

QQ技术交流群

千锋go语言官方①群
816085262

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码