Skip to main content

GORM MySQL Example

Github StackBlitz

This is a sample program demonstrating how to use GORM as an ORM to connect to a MySQL database with the Fiber web framework.

Prerequisites

  • Go 1.25 or higher
  • MySQL database
  • Go modules

Setup

  1. Clone the repository:

    git clone https://github.com/gofiber/recipes.git
    cd recipes/gorm-mysql
  2. Install dependencies:

    go mod tidy
  3. Configure the database connection via the DB_DSN environment variable:

    export DB_DSN="user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"

    If DB_DSN is not set, the application falls back to the default DSN above.

Running the Application

  1. Run the application:

    go run app.go
  2. The server will start on http://localhost:3000.

Endpoints

MethodURLDescription
GET/helloReturns a hello message
GET/allbooksRetrieves all books
GET/book/:idRetrieves a book by ID
POST/bookCreates a new book
PUT/book/:idUpdates an existing book
DELETE/book/:idDeletes a book

Example Requests

Get All Books

curl -X GET http://localhost:3000/allbooks

Get Book by ID

curl -X GET http://localhost:3000/book/1

Create a New Book

curl -X POST http://localhost:3000/book -d '{"title": "New Book", "author": "Author Name"}' -H "Content-Type: application/json"

Update a Book

curl -X PUT http://localhost:3000/book/1 -d '{"title": "Updated Book", "author": "Updated Author"}' -H "Content-Type: application/json"

Delete a Book

curl -X DELETE http://localhost:3000/book/1