Browse Source

First commit.

Frederic G. MARAND 8 years ago
commit
ebb29566e7
3 changed files with 96 additions and 0 deletions
  1. 5 0
      .gitignore
  2. 8 0
      Makefile
  3. 83 0
      main.go

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+/.idea/
+
+# Generated files
+/main
+/*.log

+ 8 - 0
Makefile

@@ -0,0 +1,8 @@
+
+all: xormdemo
+
+clean:
+	rm -fr main xormdemo *.log *.db
+
+xormdemo: main.go
+	go build

+ 83 - 0
main.go

@@ -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()
+}