diff --git a/.gitignore b/.gitignore index 8b174a0..cd79bf7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .env .idea go_build_my_app +*.db diff --git a/go/l19/l1.go b/go/l19/l1.go index ed70f57..dd0502a 100644 --- a/go/l19/l1.go +++ b/go/l19/l1.go @@ -5,6 +5,8 @@ import ( "net/http" "encoding/json" "strings" + "database/sql" + _ "github.com/mattn/go-sqlite3" ) type User struct{ @@ -53,9 +55,54 @@ func handle(w http.ResponseWriter, r *http.Request) { func WatchChanell() { for u := range setChan { - JsonData, err := json.Marshal(u) - if err != nil { continue } - fmt.Println(string(JsonData)) + db, err := sql.Open("sqlite3", "./base.db") + if err != nil { + panic(err) + } + defer db.Close() + sqlStmt := `CREATE TABLE IF NOT EXISTS l1 ( + id INTEGER NOT NULL PRIMARY KEY, + age INTEGER DEFAULT 0, + name TEXT, + email TEXT, + alive INTEGER NOT NULL DEFAULT 0 CHECK (alive IN (0, 1)) + ); ` + _, err = db.Exec(sqlStmt) + if err != nil { + panic(err) + } + var Alive int + if u.Alive { + Alive = 1 + } else { + Alive = 0 + } + _, err = db.Exec("INSERT INTO l1 (age, name, email, alive) VALUES(?, ?, ?, ?)", u.Age, u.Name, u.Email, Alive) + if err != nil { + panic(err) + } + defer db.Close() + rows, err := db.Query("SELECT id, age, name, email, alive FROM l1") + if err != nil { + panic(err) + } + for rows.Next() { + var id int + var age int + var name string + var email string + var alive int + var boolAlive bool + rows.Scan(&id, &age, &name, &email, &alive) + if alive == 1 { + boolAlive = true + } + if alive == 0 { + boolAlive = false + } + StrAnswer := fmt.Sprintf("ID %d, Age %d, Name %s, Email %s, Alive %t\n", id, age, name, email, boolAlive) + fmt.Printf("%s", StrAnswer) + } } } diff --git a/go/l19/output/l1 b/go/l19/output/l1 index a0c7f95..2907ecf 100755 Binary files a/go/l19/output/l1 and b/go/l19/output/l1 differ diff --git a/go/sql/l1.go b/go/sql/l1.go index c4b2c55..537d045 100644 --- a/go/sql/l1.go +++ b/go/sql/l1.go @@ -20,16 +20,16 @@ func main() { } defer db.Close() - sqlStmt := `CREATE TABLE IF NOT EXISTS users (id INTEGER NOT NULL PRIMARY KEY, name TEXT, time TEXT);` + sqlStmt := `CREATE TABLE IF NOT EXISTS l1 (id INTEGER NOT NULL PRIMARY KEY, name TEXT, time TEXT);` _, err = db.Exec(sqlStmt) if err != nil { panic(err) } - _, err = db.Exec("INSERT INTO users(name, time) VALUES(?, ?)", username, userTime) + _, err = db.Exec("INSERT INTO l1 (name, time) VALUES(?, ?)", username, userTime) if err != nil { panic(err) } - rows, err := db.Query("SELECT id, name, time FROM users") + rows, err := db.Query("SELECT id, name, time FROM l1") if err != nil { panic(err) }