xorm包使用

目录结构

主目录iris

  1. —— main.go

示例代码

main.go

  1. //包主显示如何在您的Web应用程序中使用orm
  2. //它只是插入一列并选择第一列。
  3. package main
  4. import (
  5. "time"
  6. "github.com/kataras/iris"
  7. "github.com/go-xorm/xorm"
  8. _ "github.com/mattn/go-sqlite3"
  9. )
  10. /*
  11. go get -u github.com/mattn/go-sqlite3
  12. go get -u github.com/go-xorm/xorm
  13. 如果您使用的是win64并且无法安装go-sqlite3:
  14. 1.下载:https://sourceforge.net/projects/mingw-w64/files/latest/download
  15. 2.选择“x86_x64”和“posix”
  16. 3.添加C:\Program Files\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev1\mingw64\bin
  17. 到你的PATH env变量。
  18. 手册: http://xorm.io/docs/
  19. */
  20. //User是我们的用户表结构。
  21. type User struct {
  22. ID int64 // xorm默认自动递增
  23. Version string `xorm:"varchar(200)"`
  24. Salt string
  25. Username string
  26. Password string `xorm:"varchar(200)"`
  27. Languages string `xorm:"varchar(200)"`
  28. CreatedAt time.Time `xorm:"created"`
  29. UpdatedAt time.Time `xorm:"updated"`
  30. }
  31. func main() {
  32. app := iris.New()
  33. orm, err := xorm.NewEngine("sqlite3", "./test.db")
  34. if err != nil {
  35. app.Logger().Fatalf("orm failed to initialized: %v", err)
  36. }
  37. iris.RegisterOnInterrupt(func() {
  38. orm.Close()
  39. })
  40. err = orm.Sync2(new(User))
  41. if err != nil {
  42. app.Logger().Fatalf("orm failed to initialized User table: %v", err)
  43. }
  44. app.Get("/insert", func(ctx iris.Context) {
  45. user := &User{Username: "kataras", Salt: "hash---", Password: "hashed", CreatedAt: time.Now(), UpdatedAt: time.Now()}
  46. orm.Insert(user)
  47. ctx.Writef("user inserted: %#v", user)
  48. })
  49. app.Get("/get", func(ctx iris.Context) {
  50. user := User{ID: 1}
  51. if ok, _ := orm.Get(&user); ok {
  52. ctx.Writef("user found: %#v", user)
  53. }
  54. })
  55. // http://localhost:8080/insert
  56. // http://localhost:8080/get
  57. app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
  58. }