sqlite 测试

This commit is contained in:
Shikong 2023-07-09 20:46:46 +08:00
parent fce779dfb6
commit a7069fe9b7
3 changed files with 66 additions and 0 deletions

View File

@ -4,6 +4,7 @@ go 1.18
require (
github.com/gen2brain/beeep v0.0.0-20230602101333-f384c29b62dd
github.com/mutecomm/go-sqlcipher/v4 v4.4.2
github.com/wailsapp/wails/v2 v2.5.1
)

View File

@ -33,6 +33,8 @@ github.com/mattn/go-colorable v0.1.11 h1:nQ+aFkoE2TMGc0b68U2OKSexC+eq46+XwZzWXHR
github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mutecomm/go-sqlcipher/v4 v4.4.2 h1:eM10bFtI4UvibIsKr10/QT7Yfz+NADfjZYh0GKrXUNc=
github.com/mutecomm/go-sqlcipher/v4 v4.4.2/go.mod h1:mF2UmIpBnzFeBdu/ypTDb/LdbS0nk0dfSN1WUsWTjMA=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2 h1:acNfDZXmm28D2Yg/c3ALnZStzNaZMSagpbr96vY6Zjc=
@ -44,6 +46,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/samber/lo v1.27.1 h1:sTXwkRiIFIQG+G0HeAvOEnGjqWeWtI9cg5/n51KrxPg=
github.com/samber/lo v1.27.1/go.mod h1:it33p9UtPMS7z72fP4gw/EIfQB2eI8ke7GR2wc6+Rhg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af h1:6yITBqGTE2lEeTPG04SN9W+iWHCRyHqlVYILiSXziwk=

View File

@ -2,13 +2,17 @@ package lib
import (
"bytes"
"database/sql"
"fmt"
"github.com/gen2brain/beeep"
"os"
"os/exec"
"path/filepath"
"strings"
"testing"
"time"
_ "github.com/mutecomm/go-sqlcipher/v4"
)
func TestName(t *testing.T) {
@ -57,3 +61,61 @@ func TestJavaEnv(t *testing.T) {
fmt.Println(os.Getenv("java_home"))
fmt.Println(os.Getenv("JAVA_HOME"))
}
func TestSqlite(t *testing.T) {
fmt.Println(os.Args[0])
fmt.Println(os.Getwd())
dbPath := filepath.Join(filepath.Dir(os.Args[0]), "test.db")
fmt.Printf("dbPath => %v\n", dbPath)
// 加密
//dataSourceName := fmt.Sprintf("file:%s?_pragma_key=%s", dbPath, "shikong")
// 不加密
dataSourceName := fmt.Sprintf("file:%s?", dbPath)
db, err := sql.Open("sqlite3", dataSourceName)
_, _ = db.Exec("PRAGMA cipher_use_hmac = OFF;")
_, _ = db.Exec("PRAGMA cipher_page_size = 1024;")
_, _ = db.Exec("PRAGMA kdf_iter = 4000;")
if err != nil {
t.Fatal(err)
}
defer func() {
_ = db.Close()
}()
err = db.Ping()
if err != nil {
t.Fatal(err)
}
//_, err = db.Exec("PRAGMA key = shikong;")
//if err != nil {
// t.Fatal(err)
// return
//}
sql := `
DROP TABLE IF EXISTS cars;
CREATE TABLE cars(id INTEGER PRIMARY KEY, name TEXT, price INT);
INSERT INTO cars(name, price) VALUES('Audi',52642);
INSERT INTO cars(name, price) VALUES('Mercedes',57127);
INSERT INTO cars(name, price) VALUES('Skoda',9000);
INSERT INTO cars(name, price) VALUES('Volvo',29000);
INSERT INTO cars(name, price) VALUES('Bentley',350000);
INSERT INTO cars(name, price) VALUES('Citroen',21000);
INSERT INTO cars(name, price) VALUES('Hummer',41400);
INSERT INTO cars(name, price) VALUES('Volkswagen',21600);
`
_, _ = db.Exec(sql)
result, err := db.Exec("select * from sqlite_master;")
if err != nil {
t.Fatal(err)
return
}
fmt.Printf("%+v\n", result)
fmt.Println("数据库连接成功")
}