github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/go-xorm/xorm/examples/cache.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/insionng/yougam/libraries/xorm" 8 _ "github.com/mattn/go-sqlite3" 9 ) 10 11 type User struct { 12 Id int64 13 Name string 14 } 15 16 func main() { 17 f := "cache.db" 18 os.Remove(f) 19 20 Orm, err := xorm.NewEngine("sqlite3", f) 21 if err != nil { 22 fmt.Println(err) 23 return 24 } 25 Orm.ShowSQL(true) 26 cacher := xorm.NewLRUCacher(xorm.NewMemoryStore(), 1000) 27 Orm.SetDefaultCacher(cacher) 28 29 err = Orm.CreateTables(&User{}) 30 if err != nil { 31 fmt.Println(err) 32 return 33 } 34 35 _, err = Orm.Insert(&User{Name: "xlw"}) 36 if err != nil { 37 fmt.Println(err) 38 return 39 } 40 41 users := make([]User, 0) 42 err = Orm.Find(&users) 43 if err != nil { 44 fmt.Println(err) 45 return 46 } 47 48 fmt.Println("users:", users) 49 50 users2 := make([]User, 0) 51 52 err = Orm.Find(&users2) 53 if err != nil { 54 fmt.Println(err) 55 return 56 } 57 58 fmt.Println("users2:", users2) 59 60 users3 := make([]User, 0) 61 62 err = Orm.Find(&users3) 63 if err != nil { 64 fmt.Println(err) 65 return 66 } 67 68 fmt.Println("users3:", users3) 69 70 user4 := new(User) 71 has, err := Orm.Id(1).Get(user4) 72 if err != nil { 73 fmt.Println(err) 74 return 75 } 76 77 fmt.Println("user4:", has, user4) 78 79 user4.Name = "xiaolunwen" 80 _, err = Orm.Id(1).Update(user4) 81 if err != nil { 82 fmt.Println(err) 83 return 84 } 85 fmt.Println("user4:", user4) 86 87 user5 := new(User) 88 has, err = Orm.Id(1).Get(user5) 89 if err != nil { 90 fmt.Println(err) 91 return 92 } 93 fmt.Println("user5:", has, user5) 94 95 _, err = Orm.Id(1).Delete(new(User)) 96 if err != nil { 97 fmt.Println(err) 98 return 99 } 100 101 for { 102 user6 := new(User) 103 has, err = Orm.Id(1).Get(user6) 104 if err != nil { 105 fmt.Println(err) 106 return 107 } 108 fmt.Println("user6:", has, user6) 109 } 110 }