从0-1创建一个关于gin简易图书馆管理系统

## 使用gin , mysql

一、下载所需资源包

先进行golang环境配置

Goland 设置与配置_goland 配置-CSDN博客

下载gin框架

cmd窗口执行命令

go get -u github.com/gin-gonic/gin

下载关于mysql的驱动

go get -u github.com/go-sql-driver/mysql

下载sqlx

go get -u github.com/jmoiron/sqlx

二、创建数据库连接池,并连接数据库


import (
	"fmt"

	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

// 数据库连接池
var db *sqlx.DB

func InitDB() (err error) {
	dsn := "用户名:密码@tcp(127.0.0.1:3306)/数据库名称"
	// 也可以使用MustConnect连接不成功就panic
	db, err = sqlx.Connect("mysql", dsn)
	if err != nil {
		fmt.Printf("connect DB failed, err:%v\n", err)
		return
	}
	db.SetMaxOpenConns(20)
	db.SetMaxIdleConns(10)
	return
}

SetMaxOpenConns :表示最大连接数
SetMaxIdleConns :最小连接数

三、封装数据库请求

## 使用查询语句后返回查询到的列表

type Book struct {
	Book_id       int
	Book_name     string
	Book_price    int
	Book_author   string
	Book_presence string
}

// 查询所有数据
func SelectAllGet() (bookList []Book, err error) {
	if db == nil {
		panic("数据库连接尚未初始化")
	}
	var books []Book
	var users Book
	// sql语句
	sqlStr := "select * from book"

	err = db.Select(&books, sqlStr)

	if err != nil {
		return
	}
	return books, err

}

## 上述代码与数据库连接池再同一文件下

四、在main函数中设置gin

import (
	"fmt"
	httpsql "project/ginBook/http"

	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
)

func main() {

	//程序启动连接数据库
	err := httpsql.InitDB()
	//初始化
	if err != nil {
		fmt.Printf("初始化连接失败 err=%v\n", err)
		return
	}
	// 创建路由
	r := gin.Default()

	// 设置请求头
	setHeaders := func(c *gin.Context) {
		c.Request.Header.Set("Access-Control-Allow-Origin", "*")
		c.Request.Header.Set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, token, Accept")
		// 可以在这里添加其他请求头的设置
	}

	// 将自定义中间件应用到路由上
	r.Use(setHeaders)

	// 使用CORS中间件
	r.Use(cors.Default())

	// //各个路由
	r.GET("/book/list", booklListHandle) //查询书籍
	r.Run(":8080")

}

## 引入数据库文件,并且使用 InitDB()方法,初始化数据库。

## 使用setHeaders 设置请求头为*  全部都能通过

func booklListHandle(c *gin.Context) {
	// 查询书籍操作
	bookList, err := httpsql.SelectAllGet()
	if err != nil {
		c.JSON(500, gin.H{
			"code":    500,
			"message": err,
		})
	}
	c.JSON(200, gin.H{
		"code":    200,
		"message": bookList,
	})
}

## 使用gin框架的(c *gin.Context)进行接收参数和返回数据

五、启动程序

在终端输入   go run main.go     

就可以在浏览器进行访问http://localhost:8080/book/list   就可测试获取数据是否成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值