Skip to content

Instantly share code, notes, and snippets.

@mortymacs
Created August 13, 2024 14:21

Revisions

  1. mortymacs created this gist Aug 13, 2024.
    57 changes: 57 additions & 0 deletions sample.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    package main

    import (
    "fmt"
    "log"

    "go.etcd.io/bbolt"
    )

    func main() {
    // Open a BoltDB database file
    db, err := bbolt.Open("mydb.db", 0666, nil)
    if err != nil {
    log.Fatal(err)
    }
    defer db.Close()

    // Store data in the database
    err = db.Update(func(tx *bbolt.Tx) error {
    // Create or open a bucket
    bucket, err := tx.CreateBucketIfNotExists([]byte("MyBucket"))
    if err != nil {
    return err
    }

    // Store a key-value pair in the bucket
    err = bucket.Put([]byte("name"), []byte("Mort"))
    if err != nil {
    return err
    }

    return nil
    })

    if err != nil {
    log.Fatal(err)
    }

    // Retrieve data from the database
    err = db.View(func(tx *bbolt.Tx) error {
    // Get the bucket
    bucket := tx.Bucket([]byte("MyBucket"))
    if bucket == nil {
    return fmt.Errorf("Bucket not found")
    }

    // Retrieve the value associated with the key "name"
    val := bucket.Get([]byte("name"))
    fmt.Printf("The value of 'name' is: %s\n", val)

    return nil
    })

    if err != nil {
    log.Fatal(err)
    }
    }