first commit
This commit is contained in:
commit
040633b7be
5 changed files with 127 additions and 0 deletions
0
README.md
Normal file
0
README.md
Normal file
5
go.mod
Normal file
5
go.mod
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
module sqlite3_hook
|
||||
|
||||
go 1.18
|
||||
|
||||
require github.com/mattn/go-sqlite3 v1.14.28 // indirect
|
||||
2
go.sum
Normal file
2
go.sum
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A=
|
||||
github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||
120
main.go
Normal file
120
main.go
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
// Book is a placeholder for book
|
||||
type Word struct {
|
||||
word_id int
|
||||
source_id int
|
||||
previous string
|
||||
current string
|
||||
next string
|
||||
count int
|
||||
}
|
||||
|
||||
type Source struct {
|
||||
source_id int
|
||||
name string
|
||||
}
|
||||
|
||||
func prep_query(db *sql.DB, q string) (*sql.Stmt){
|
||||
statement, err := db.Prepare(q)
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
log.Println(statement)
|
||||
}
|
||||
|
||||
return statement
|
||||
}
|
||||
|
||||
func main() {
|
||||
db, _ := sql.Open("sqlite3", "words.db")
|
||||
|
||||
log.Println("Nuking tables...")
|
||||
prep_query(db, "DROP TABLE IF EXISTS words").Exec()
|
||||
prep_query(db, "DROP TABLE IF EXISTS sources").Exec()
|
||||
log.Println("Done nuking tables!")
|
||||
|
||||
log.Println("Creating tables...")
|
||||
prep_query(db, `
|
||||
CREATE TABLE IF NOT EXISTS sources (
|
||||
source_id INTEGER PRIMARY KEY,
|
||||
name VARCHAR(64)
|
||||
);
|
||||
`).Exec()
|
||||
|
||||
prep_query(db, `
|
||||
CREATE TABLE IF NOT EXISTS words (
|
||||
word_id INTEGER PRIMARY KEY,
|
||||
source_id INTEGER,
|
||||
previous VARCHAR(64) DEFAULT NULL,
|
||||
current VARCHAR(64),
|
||||
next VARCHAR(64) DEFAULT NULL,
|
||||
count INTEGER DEFAULT 0,
|
||||
FOREIGN KEY(source_id) REFERENCES sources(source_id)
|
||||
);
|
||||
`).Exec()
|
||||
log.Println("Done making tables!")
|
||||
|
||||
log.Println("Making indexes...")
|
||||
prep_query(db, "CREATE INDEX words_sources_index ON words(source_id)").Exec()
|
||||
log.Println("Done making indexes!")
|
||||
|
||||
log.Println("Inserting source/word...")
|
||||
prep_query(db, `
|
||||
INSERT INTO sources
|
||||
(name)
|
||||
VALUES
|
||||
(?)
|
||||
`).Exec("Monqui")
|
||||
|
||||
prep_query(db, `
|
||||
INSERT INTO words
|
||||
(current, next, source_id)
|
||||
VALUES
|
||||
(?, ?, ?)
|
||||
`).Exec("My", "name", 1)
|
||||
|
||||
log.Println("Inserted the source/word into database!")
|
||||
|
||||
rows, _ := db.Query("SELECT source_id, name FROM sources")
|
||||
var tempSource Source
|
||||
for rows.Next() {
|
||||
rows.Scan(&tempSource.source_id, &tempSource.name)
|
||||
log.Printf("source_id:%d, name:%s\n",
|
||||
tempSource.source_id, tempSource.name)
|
||||
}
|
||||
|
||||
rows, _ = db.Query("SELECT word_id, current, next, source_id FROM words")
|
||||
var tempWord Word
|
||||
for rows.Next() {
|
||||
rows.Scan(&tempWord.word_id, &tempWord.current, &tempWord.next, &tempWord.source_id)
|
||||
log.Printf(
|
||||
"word_id:%d, current:%s, next:%s, source_id:%d\n",
|
||||
tempWord.word_id, tempWord.current, tempWord.next, tempWord.source_id)
|
||||
}
|
||||
|
||||
// Update
|
||||
prep_query(db, "UPDATE sources SET name=? WHERE source_id=?").Exec("Monqu2", 1)
|
||||
|
||||
rows, _ = db.Query("SELECT source_id, name FROM sources")
|
||||
for rows.Next() {
|
||||
rows.Scan(&tempSource.source_id, &tempSource.name)
|
||||
log.Printf("source_id:%d, name:%s\n",
|
||||
tempSource.source_id, tempSource.name)
|
||||
}
|
||||
|
||||
//
|
||||
/*
|
||||
// Delete
|
||||
statement, _ = db.Prepare("delete from books where id=?")
|
||||
statement.Exec(1)
|
||||
log.Println("Successfully deleted the book in database!")
|
||||
*/
|
||||
}
|
||||
BIN
words.db
Normal file
BIN
words.db
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue