“誒,你這前后端開發環境怎么搭建這么快?”“用了 Devbox 啊。”“不是吧,你怎么在 Cursor 里連接開發環境的數據庫,這些都配好了?”“對啊,一鍵搞定。”“開玩笑吧?這得配置半天環境吧?”“不,因為 Devbox 已經幫我們把所有開發環境都預配置好了,直接寫代碼就行。”

這不是科幻電影的對白,而是真實存在的 Sealos Devbox 的功能。今天我就給大家展示一下如何用最簡單的方式,實現開發環境與數據庫的無縫協作。如果你不知道啥是 Devbox,可以看我們之前的文章 ??

image

我一行代碼也沒寫,Cursor 和 Devbox 給我寫了個高仿蘋果官網!

Sealos 數據庫介紹

Sealos 數據庫是一個強大且靈活的數據庫管理平臺,允許用戶在 Sealos 上可視化地管理和使用各種數據庫。并且還提供了一整套高效的工具和機制,使數據庫的管理、擴展、監控和故障恢復更加便捷和自動化,適合從開發到生產的各類場景。

image

你只需要點點鼠標,就可以創建各種數據庫,而且還是高可用的,你說氣人不氣人。Sealos 數據庫支持豐富的數據庫管理系統 (DBMS),包括 MySQL、PostgreSQL、Redis、MongoDB,此外還支持消息隊列 (如 Kafka) 和向量數據庫等,滿足了用戶多種業務場景的需求。

除此之外,Sealos 數據庫還支持自動故障恢復、靈活的數據備份與恢復機制、數據遷移等等各種特性,這里我就不一一列舉了,感興趣的可以看 Sealos 官方文檔。

創建數據庫

首先,我們需要創建一個數據庫。瀏覽器進入 Sealos 桌面:https://hzh.sealos.run 然后打開【數據庫】App。

image

image

整個過程非常直觀,只需要按照界面提示一步步操作即可。選擇好配置后,點擊【部署】按鈕,數據庫就會開始創建。等到數據庫狀態變為運行中以后,點擊左邊的小眼睛圖標,即可看到數據庫的連接信息。

image

點擊【連接】按鈕,進入數據庫的終端界面。

image

在終端界面輸入以下命令創建測試數據庫。

CREATE DATABASE testdb;

這時候,基本的數據庫配置就搞定啦。接下來開始創建開發環境。

創建 Devbox 開發環境

現在我們要創建一個 Devbox 開發環境,并通過本地的 IDE 連接到這個開發環境。在 Sealos 桌面打開 Devbox 應用,新建一個項目,選擇 Go 語言作為運行環境,CPU 內存改成 1C2G 就夠了,不夠可以隨時再加。點擊創建,幾秒鐘即可啟動開發環境。

接下來在操作選項中點擊 Cursor,將會自動打開本地的 Cursor 編程 IDE。

image

接著會提示安裝 Devbox 插件,安裝后即可自動連接開發環境。

image

image

是不是非常簡單?直接省略了配置域名解析、申請 SSL 證書,配置網關等與開發無關的繁瑣操作,爽!

初始化項目

現在我們需要初始化一個 Go 項目并安裝相關依賴。在 Cursor 的終端中執行以下命令:

go mod init go-db-demo
go mod tidy
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql

使用 GORM 連接 MySQL 數據庫

接下來我們會創建一個簡單的 demo 來使用 GORM 這個 Go 語言的 ORM 框架來連接 MySQL 數據庫。整個項目的目錄結構如下:

├── main.go
├── config/
│   └── config.go
├── models/
│   └── user.go
├── database/
│   └── database.go
├── repository/
│   └── user_repository.go
└── go.mod

首先我們在 config 目錄下創建一個 config.go 文件,配置數據庫的連接信息,包括 MySQL 的用戶名、密碼、數據庫名稱、數據庫地址、數據庫端口等。

package config

import (
    "fmt"
)

var (
    DBUser     = "root"
    DBPassword = "9w7zjt8f"
    DBName     = "testdb"
    DBHost     = "test1-db-mysql.ns-kc811077.svc"
    DBPort     = "3306"
)

func GetDSN() string {
    return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
        DBUser, DBPassword, DBHost, DBPort, DBName)
}

接下來在 database 目錄下創建 database.go 文件,用于初始化數據庫連接:

package database

import (
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "go-db-demo/config"
    "log"
)

var DB *gorm.DB

func Connect() {
    dsn := config.GetDSN()
    var err error
    DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        log.Fatalf("Failed to connect to database: %v", err)
    }
    log.Println("Database connected successfully!")
}

現在我們在 models 目錄下創建 user.go 文件,定義 User 模型:

package models

import "gorm.io/gorm"

type User struct {
    gorm.Model
    Name  string json:"name"
    Email string json:"email" gorm:"unique"
}

接下來我們需要實現一些基本的數據庫操作功能。我們將在 models 目錄下創建 user_operations.go 文件,用于定義用戶相關的增刪改查操作。這些操作包括:

下面是具體的實現代碼:

package repository

import (
    "go-db-demo/database"
    "go-db-demo/models"
)

func CreateUser(user *models.User) error {
    return database.DB.Create(user).Error
}

func GetUserByID(id uint) (*models.User, error) {
    var user models.User
    err := database.DB.First(&user, id).Error
    return &user, err
}

func UpdateUser(user *models.User) error {
    return database.DB.Save(user).Error
}

func DeleteUser(id uint) error {
    return database.DB.Delete(&models.User{}, id).Error
}

現在讓我們在主程序中使用這些功能。在 main.go 文件中,我們將初始化數據庫連接,并執行一些基本的 CRUD 操作來測試我們的實現:

package main

import (
    "fmt"
    "go-db-demo/database"
    "go-db-demo/models"
    "go-db-demo/repository"
)

func main() {
    // 連接數據庫
    database.Connect()

    // 自動遷移數據庫結構
    database.DB.AutoMigrate(&models.User{})

    // 創建用戶
    newUser := &models.User{Name: "John Doe", Email: "john@example.com"}
    if err := repository.CreateUser(newUser); err != nil {
        fmt.Println("Error creating user:", err)
    } else {
        fmt.Println("User created:", newUser)
    }

    // 查詢用戶
    user, err := repository.GetUserByID(newUser.ID)
    if err != nil {
        fmt.Println("Error fetching user:", err)
    } else {
        fmt.Printf("Fetched user: %#vn", user)
    }

    // 更新用戶
    user.Name = "John Updated"
    if err := repository.UpdateUser(user); err != nil {
        fmt.Println("Error updating user:", err)
    } else {
        fmt.Println("User updated:", user)
    }

    // 刪除用戶
    if err := repository.DeleteUser(user.ID); err != nil {
        fmt.Println("Error deleting user:", err)
    } else {
        fmt.Println("User deleted successfully")
    }
}

現在我們已經完成了基本的 CRUD 操作代碼,我們來測試一下。在 Cursor 的終端中執行以下命令:

go run main.go

現在你將看到程序對數據庫的一系列操作結果,包括:

輸出大致如下:

image

進一步完善我們的 demo

還可以繼續完善和擴展,比如:

  1. 添加數據驗證

  2. 接口化

你可以繼續使用 Cursor 的 AI 能力來實現這些功能,通過自然語言描述我們想要實現的功能,它就能幫我們生成相應的代碼。比如,我們可以這樣描述:“幫我實現一個用戶數據的批量導入功能,包含事務處理和錯誤回滾機制。”Cursor 就會根據我們的描述,生成相應的代碼實現。

總結

在傳統開發中,連接開發環境的數據庫就像是穿越千山萬水去約會 – 要配 IP、調防火墻、改配置。但在 Sealos 中,Cursor 和數據庫就像住在隔壁的青梅竹馬,想約就約,連個電話都不用打。這種開發體驗,不就是我們每個開發者心中的 “理想型” 嗎?有了這對神仙搭檔,你就可以把更多精力放在實現產品創意上,而不是被繁瑣的環境配置耗盡耐心。

image

加入 Sealos 開源社區體驗像個人電腦一樣簡單的云操作系統

??官網鏈接 https://sealos.run

??GitHub 地址 https://github.com/labring/sealos

??訪問 Sealos 文檔 https://sealos.run/docs/Intro

???逛逛論壇 https://forum.laf.run/

往期推薦

哈哈,我好像知道 Cursor 為什么叫 Cursor 了,真相竟然是光標 2024-11-11

image

不會前端也能寫官網?沒問題,Devbox+Cursor 帶你起飛 2024-11-06

image

別再浪費時間配置環境了!這個比 Laf 還牛的云開發框架,讓我3分鐘搭建完整應用 2024-11-05

image

我一行代碼也沒寫,Cursor 和 Devbox 給我寫了個高仿蘋果官網! 2024-10-28

image

3分鐘部署上線小產品?Cursor 和 Devbox 讓開發從未如此簡單! 2024-10-29

image

關于 Sealos

Sealos 是一款以 Kubernetes 為內核的云操作系統發行版。它以云原生的方式,拋棄了傳統的云計算架構,轉向以 Kubernetes 為云內核的新架構,使企業能夠像使用個人電腦一樣簡單地使用云。

關注 Sealos 公眾號與我們一同成長??????

原文轉載自:https://mp.weixin.qq.com/s/xq9Q7kBX8f_sw_0kUjyC6A

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
DeepSeekMath:挑戰大語言模型的數學推理極限
下一篇
通義萬相,開源!
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
欧美电影一区二区三区| 欧美精品一区二区三区蜜桃| 久草精品在线观看| 亚洲精品一区二区三区福利| 免费欧美日韩国产三级电影| 在线视频你懂得一区| 欧美国产一区二区| 91网址在线看| 亚洲综合在线第一页| caoporen国产精品视频| 欧美专区日韩专区| 一区二区三区色| 欧美日韩精品专区| 琪琪久久久久日韩精品| 精品精品欲导航| 精品制服美女丁香| 在线一区二区三区做爰视频网站| 亚洲愉拍自拍另类高清精品| 色猫猫国产区一区二在线视频| 17c精品麻豆一区二区免费| 粉嫩蜜臀av国产精品网站| 欧美综合一区二区| 免费看欧美女人艹b| 久久这里只有精品首页| 高清在线观看日韩| 一区二区三区精密机械公司| 欧美吞精做爰啪啪高潮| 亚洲欧洲99久久| 欧美日本一道本在线视频| 精品无人码麻豆乱码1区2区| 中文字幕乱码日本亚洲一区二区| 91视频一区二区三区| 亚洲国产成人av好男人在线观看| 欧美一区二区不卡视频| 欧美综合欧美视频| 狠狠色丁香婷婷综合| 亚洲免费观看高清完整 | 欧美极品美女视频| 色av成人天堂桃色av| 国产成人在线免费| 污片在线观看一区二区| 国产精品女主播av| 国产乱国产乱300精品| 偷窥国产亚洲免费视频| 国产精品视频一二三区| 日韩一区二区三区观看| 这里只有精品视频在线观看| 色老汉一区二区三区| 国产高清精品久久久久| 国产成人免费在线观看| 经典三级在线一区| 奇米精品一区二区三区四区| 男男gaygay亚洲| 午夜婷婷国产麻豆精品| 一区二区三区视频在线观看| 欧美一区二区三区在线观看| 欧美精品久久一区二区三区| 日本韩国欧美国产| 99久久er热在这里只有精品15| 成人免费视频国产在线观看| 九九精品视频在线看| 日韩精品一二区| 全国精品久久少妇| 亚洲一区二区在线免费观看视频 | 国产亚洲精品超碰| 精品1区2区在线观看| 精品久久久久久久人人人人传媒| 国产乱码精品一区二区三区忘忧草 | 国内精品写真在线观看| 捆绑变态av一区二区三区| 日产国产欧美视频一区精品| 图片区小说区区亚洲影院| 国产精品嫩草99a| 亚洲国产精品久久久久婷婷884| 亚洲精品精品亚洲| 亚洲大尺度视频在线观看| 日韩中文字幕亚洲一区二区va在线 | 一区二区三区欧美在线观看| 亚洲国产精品一区二区久久恐怖片| 日韩毛片视频在线看| 亚洲va欧美va天堂v国产综合| 日本最新不卡在线| 国产成人综合亚洲网站| 欧美剧在线免费观看网站| 日韩欧美高清在线| 国产精品二区一区二区aⅴ污介绍| 亚洲高清不卡在线观看| 国产真实乱对白精彩久久| 成人精品鲁一区一区二区| 国产精品午夜春色av| 国产欧美日韩三级| 亚洲精品一二三四区| 国产欧美日韩综合精品一区二区| 亚洲午夜视频在线| 精品在线一区二区三区| 99久久综合精品| 91精品国产欧美一区二区18| 国产精品久久久久国产精品日日| 久久精品国内一区二区三区| 97精品视频在线观看自产线路二| 欧美美女喷水视频| 亚洲一级片在线观看| 国产精品影视在线| 欧美三级日韩三级| 午夜精品一区在线观看| 成人午夜av电影| 日韩一区二区三区视频在线观看| 欧美精品一区二区三区在线播放 | 亚洲综合色区另类av| 国内精品自线一区二区三区视频| 91一区一区三区| 岛国一区二区在线观看| 91精品福利在线一区二区三区 | 国产精品久久久久aaaa| 国产精品国产三级国产三级人妇 | 奇米色777欧美一区二区| 欧洲av在线精品| 亚洲图片欧美综合| 91精品国产aⅴ一区二区| 麻豆免费精品视频| 2022国产精品视频| 99视频在线观看一区三区| 中文字幕在线一区免费| 99re热视频精品| 亚洲成av人片观看| 亚洲精品一区二区三区在线观看 | 日本韩国欧美国产| 亚洲第一电影网| xnxx国产精品| 91一区二区三区在线观看| 亚洲激情五月婷婷| 91精品国产入口| 大桥未久av一区二区三区中文| 中文字幕av免费专区久久| 91精品福利视频| 六月婷婷色综合| 综合色中文字幕| 精品久久久久久最新网址| 99久精品国产| 日本特黄久久久高潮| 欧美激情一二三区| 欧美日韩国产三级| 成人免费高清在线| 青草av.久久免费一区| 国产精品不卡一区二区三区| 日韩欧美高清dvd碟片| 99国产欧美另类久久久精品| 亚洲主播在线观看| 日本一区二区三区高清不卡| 欧美在线三级电影| 国产精品99久久久久久似苏梦涵 | 亚洲欧洲一区二区三区| 日韩一区二区三区电影在线观看| 不卡av在线网| 国产精品一区不卡| 国产一区二区三区久久悠悠色av| 一区二区三区色| 亚洲女人小视频在线观看| 久久久天堂av| 日韩欧美国产一区在线观看| 日本韩国欧美一区| 91福利在线免费观看| 高清国产午夜精品久久久久久| 麻豆精品国产传媒mv男同| 亚洲国产成人91porn| 专区另类欧美日韩| 国产精品久久久久影院| 亚洲国产精品99久久久久久久久| 国产一区二三区好的| 老司机精品视频导航| 久久99日本精品| 精彩视频一区二区三区| 久久成人羞羞网站| 韩国女主播一区二区三区| 国产综合一区二区| 国产不卡视频一区| 成人av手机在线观看| 99久久99久久精品国产片果冻| 不卡的电影网站| 欧美日韩在线播放三区| 91精品婷婷国产综合久久性色 | 日韩欧美不卡一区| 精品久久久网站| 久久精品免视看| 国产精品国产三级国产aⅴ中文| 欧美电影在线免费观看| 欧美一级久久久| 久久精品亚洲一区二区三区浴池 | 欧美一区二区三区色| 久久亚洲二区三区| 亚洲欧洲另类国产综合| 日韩在线卡一卡二| 国产福利一区在线| 99精品国产91久久久久久| 欧美日韩亚洲丝袜制服| 日韩欧美一二三| 成人欧美一区二区三区在线播放| 亚洲一区二区在线免费看| 久久99精品一区二区三区| 北条麻妃一区二区三区|