之前我们完成了注册,接下来要完成登录功能,但是有个问题,我们的数据没有持久化,无法得知有哪些用户注册了,这样就无法在登录时进行校验。
所以接下来我们要将数据持久化,也就是存储到数据库中,这里使用 MySQL
?建立数据库
首先我们要新建一个库,用来存放项目数据,建立一个名为 ginhello
的库。
create database ginhello;
当我们建立好数据库时,就可以通过 Goland
进行数据库连接和使用。
选择 Goland
右侧的 Database
,点击 + 号,选择 MySQL
。填写相关信息,账户名,密码,要连接的数据库库名等信息,进行连接。
之后我们就可以通过 Goland
的图形化界面去新建立表。
右键选择刚刚连接的 ginhello
,new
, table
然后填写字段名称和属性。下面给出建表语句。
create table user
(
id int auto_increment primary key,
email varchar(30) not null,
password varchar(40) not null
)
comment '用户表';
?连接数据库
数据库的表已经建立成功,那么省下来就该与我们的 Gin 建立联系,通过代码连接到数据库。
新建文件夹 initDB
新建 initDB.go
。
package initDB
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"log"
)
var Db *sql.DB
func init() {
var err error
Db, err = sql.Open("mysql", "root:1234@tcp(127.0.0.1:3306)/ginhello")
if err != nil {
log.Panicln("err:", err.Error())
}
Db.SetMaxOpenConns(10)
Db.SetMaxIdleConns(10)
}
首先新建一个全局变量sql.DB
方便我们后期调用,然后通过 sql.Open
对数据进行连接。SetMaxOpenConns
是对 最大链接数的设置 SetMaxIdleConns
是设置最大空闲链接数
经过简单的设置,我们的程序就可以连接到数据库。
?增加用户
当数据库连接上时,就可以完善我们的注册功能。
修改 userModel.go
对 user
添加新的方法。
func<