写一个go语言图书管理系统
时间: 2023-12-07 20:03:48 浏览: 150
基于go语言的图书管理系统.zip
5星 · 资源好评率100%
以下是使用Go语言编写图书管理系统的基本步骤:
1. 安装Go语言环境和相关依赖库,例如gin框架和gorm库。
2. 创建一个新的Go模块,并在其中创建一个main.go文件。
3. 在main.go文件中导入所需的依赖库,并创建一个路由器对象。
4. 创建一个Book结构体,用于表示图书信息,并使用gorm库创建一个books表。
5. 在路由器对象中添加处理HTTP请求的函数,例如添加图书、删除图书、更新图书和获取所有图书等。
6. 在处理HTTP请求的函数中,使用gorm库对books表进行增删改查操作。
7. 运行程序并测试各个HTTP请求处理函数是否正常工作。
以下是一个简单的示例代码,用于演示如何使用Go语言编写图书管理系统:
```go
package main
import (
"net/http"
"github.com/gin-gonic/gin"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type Book struct {
ID uint `json:"id" gorm:"primaryKey"`
Title string `json:"title"`
Author string `json:"author"`
}
func main() {
// 连接MySQL数据库
dsn := "root:password@tcp(127.0.0.1:3306)/library?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 自动迁移数据库表结构
db.AutoMigrate(&Book{})
// 创建路由器对象
router := gin.Default()
// 添加图书
router.POST("/books", func(c *gin.Context) {
var book Book
if err := c.ShouldBindJSON(&book); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
db.Create(&book)
c.JSON(http.StatusOK, book)
})
// 删除图书
router.DELETE("/books/:id", func(c *gin.Context) {
var book Book
if err := db.First(&book, c.Param("id")).Error; err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Record not found!"})
return
}
db.Delete(&book)
c.JSON(http.StatusOK, gin.H{"message": "Book deleted successfully!"})
})
// 更新图书
router.PUT("/books/:id", func(c *gin.Context) {
var book Book
if err := db.First(&book, c.Param("id")).Error; err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Record not found!"})
return
}
if err := c.ShouldBindJSON(&book); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
db.Save(&book)
c.JSON(http.StatusOK, book)
})
// 获取所有图书
router.GET("/books", func(c *gin.Context) {
var books []Book
db.Find(&books)
c.JSON(http.StatusOK, books)
})
// 运行HTTP服务器
router.Run(":8080")
}
```
阅读全文