golang编写一个类似sqlite的文件数据库实现增删改查动态改变表结构代码
代码语言:golang
所属分类:其他
代码描述:golang编写一个类似sqlite的文件数据库实现增删改查动态改变表结构代码,实现createtable、insert、update、select、delete,id自增、动态改变表结构等数据库特性,仅供学习。
代码标签: golang 编写 类似 sqlite 文件 数据库 增删 改查 代码 动态 改变 表 结构
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main
//需要在go1.16以上版本运行
import (
"fmt"
"os"
"encoding/gob"
"sync"
"reflect"
"bytes"
)
type Database struct {
filename string
tables map[string]*Table
mutex sync.RWMutex
}
type Table struct {
Name string
Schema map[string]string // 使用字符串来表示类型
Rows []map[string]interface{}
NextID int
}
type SerializableDatabase struct {
Tables map[string]*Table
}
func (db *Database) MarshalBinary() ([]byte, error) {
sdb := SerializableDatabase{
Tables: db.tables,
}
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
err := enc.Encode(sdb)
return buf.Bytes(), err
}
func (db *Database) UnmarshalBinary(data []byte) error {
var sdb SerializableDatabase
buf := bytes.NewBuffer(data)
dec := gob.NewDecoder(buf)
err := dec.D.........完整代码请登录后点击上方下载按钮下载查看















网友评论0