cache.go 1.6 KB

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