|
@@ -0,0 +1,83 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ _ "github.com/mattn/go-sqlite3"
|
|
|
+ "github.com/go-xorm/xorm"
|
|
|
+ "os"
|
|
|
+ "fmt"
|
|
|
+ "github.com/go-xorm/core"
|
|
|
+ "github.com/davecgh/go-spew/spew"
|
|
|
+)
|
|
|
+
|
|
|
+type User struct {
|
|
|
+ Id int64
|
|
|
+ Name string `xorm:"varchar(25) not null unique 'usr_name'"`
|
|
|
+}
|
|
|
+
|
|
|
+type Article struct {
|
|
|
+ Id int64
|
|
|
+ Title string `xorm:"varchar(25) not null unique 'art_title'"`
|
|
|
+}
|
|
|
+
|
|
|
+func configureOrm(orm *xorm.Engine) {
|
|
|
+ // Show SQL statement on standard output
|
|
|
+ orm.ShowSQL = true
|
|
|
+ // Show debug infomation on standard output
|
|
|
+ orm.ShowDebug = true
|
|
|
+ // Show error infomation on standard output;
|
|
|
+ orm.ShowErr = true
|
|
|
+ // Show warnning information on standard output;
|
|
|
+ orm.ShowWarn = true
|
|
|
+ // TODO Show which info ?
|
|
|
+ orm.ShowInfo = true
|
|
|
+
|
|
|
+ f, err := os.Create("sql.log")
|
|
|
+ if err != nil {
|
|
|
+ println(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ orm.Logger = xorm.NewSimpleLogger(f)
|
|
|
+
|
|
|
+ orm.SetMaxIdleConns(1)
|
|
|
+ orm.SetMaxOpenConns(10)
|
|
|
+
|
|
|
+ // Set mapper: GonicMapper, SameMapper, SnakeMapper (default).
|
|
|
+ orm.SetMapper(core.SnakeMapper{})
|
|
|
+}
|
|
|
+
|
|
|
+func addData(orm *xorm.Engine) {
|
|
|
+ u1 := new(User)
|
|
|
+ u1.Name = "FGM";
|
|
|
+ x, err := orm.Insert(u1)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ os.Exit(3)
|
|
|
+ }
|
|
|
+ spew.Dump(x, u1)
|
|
|
+}
|
|
|
+
|
|
|
+func check(e error) {
|
|
|
+ if e != nil {
|
|
|
+ panic(e)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func main() {
|
|
|
+ orm, err := xorm.NewEngine("sqlite3", "./test.db")
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ fmt.Println("ORM loaded")
|
|
|
+ configureOrm(orm)
|
|
|
+
|
|
|
+ err = orm.Sync(new(User), new(Article))
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ os.Exit(2)
|
|
|
+ }
|
|
|
+ fmt.Println("ORM synced")
|
|
|
+
|
|
|
+ addData(orm)
|
|
|
+ orm.Close()
|
|
|
+}
|