golang编写一个类似sqlite的文件数据库实现增删改查代码

代码语言:golang

所属分类:其他

代码描述:golang编写一个类似sqlite的文件数据库实现增删改查代码,实现createtable、insert、update、select、delete,id自增等数据库特性,仅供学习。

代码标签: golang 编写 类似 sqlite 文件 数据库 增删 改查 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

package main

import (
    "fmt"
    "os"
    "encoding/gob"
    "sync"
    "errors"
)

type Database struct {
    filename string
    tables   map[string]*Table
    mutex    sync.RWMutex
}

type Table struct {
    Name    string
    Columns []string
    Rows    [][]interface{}
    NextID  int // 用于跟踪下一个可用的 ID
}

func NewDatabase(filename string) *Database {
    db := &Database{
        filename: filename,
        tables:   make(map[string]*Table),
    }
    err := db.Load()
    if err != nil && !os.IsNotExist(err) {
        fmt.Printf("警告: 加载数据库失败: %v\n", err)
    }
    return db
}

func (db *Database) CreateTable(name string, columns []string) error {
    db.mutex.Lock()
    defer db.mutex.Unlock()

    if _, exists := db.tables[name]; exists {
        return fmt.Errorf("表 %s 已存在", name)
    }
    .........完整代码请登录后点击上方下载按钮下载查看

网友评论0