func Crawl(engine *xorm.Engine) error { latestIndices, err := getLatestIndices() if err != nil { return err } _, err = engine.Insert(&latestIndices.News) if err != nil { return err } news := make([]News, 0) for _, newsIndex := range latestIndices.News { content, err := getArticle(newsIndex.Id) if err == nil { news = append(news, News{newsIndex.Id, content}) } } _, err = engine.Insert(&news) if err != nil { return err } return nil }
func test(engine *xorm.Engine) { err := engine.CreateTables(u) if err != nil { fmt.Println(err) return } size := 500 queue := make(chan int, size) for i := 0; i < size; i++ { go func(x int) { //x := i err := engine.Test() if err != nil { fmt.Println(err) } else { err = engine.Map(u) if err != nil { fmt.Println("Map user failed") } else { for j := 0; j < 10; j++ { if x+j < 2 { _, err = engine.Get(u) } else if x+j < 4 { users := make([]User, 0) err = engine.Find(&users) } else if x+j < 8 { _, err = engine.Count(u) } else if x+j < 16 { _, err = engine.Insert(&User{Name: "xlw"}) } else if x+j < 32 { _, err = engine.Id(1).Delete(u) } if err != nil { fmt.Println(err) queue <- x return } } fmt.Printf("%v success!\n", x) } } queue <- x }(i) } for i := 0; i < size; i++ { <-queue } //conns := atomic.LoadInt32(&xorm.ConnectionNum) //fmt.Println("connection number:", conns) fmt.Println("end") }
func test(engine *xorm.Engine) { err := engine.CreateTables(u) if err != nil { fmt.Println(err) return } engine.ShowSQL = true engine.Pool.SetMaxConns(5) size := 1000 queue := make(chan int, size) for i := 0; i < size; i++ { go func(x int) { //x := i err := engine.Test() if err != nil { fmt.Println(err) } else { err = engine.Map(u) if err != nil { fmt.Println("Map user failed") } else { for j := 0; j < 10; j++ { if x+j < 2 { _, err = engine.Get(u) } else if x+j < 4 { users := make([]User, 0) err = engine.Find(&users) } else if x+j < 8 { _, err = engine.Count(u) } else if x+j < 16 { _, err = engine.Insert(&User{Name: "xlw"}) } else if x+j < 32 { _, err = engine.Id(1).Delete(u) } if err != nil { fmt.Println(err) queue <- x return } } fmt.Printf("%v success!\n", x) } } queue <- x }(i) } for i := 0; i < size; i++ { <-queue } fmt.Println("end") }
func main() { var ( engine *xorm.Engine user *User ) engine = SetupDb() //START CODE OMIT engine.Insert(&User{Id: 1, FirstName: "John", LastName: "Doe"}) PrintTable(engine) user = &User{Id: 1} engine.Get(user) user.FirstName = "James" engine.Update(user) PrintTable(engine) engine.Delete(user) PrintTable(engine) //END CODE OMIT }
func main() { var ( engine *xorm.Engine ) engine = SetupDb() engine.Insert(&User{ Id: 1, FirstName: "John", LastName: "Doe", Age: 24, }) engine.Insert(&User{ Id: 2, FirstName: "Jane", LastName: "Doe", Age: 52, }) engine.Insert(&User{ Id: 3, FirstName: "Joe", LastName: "Shmoe", Age: 10, }) //START CODE OMIT var users []User engine.Where("last_name = ? OR age < ?", "Doe", "12").OrderBy("age").Limit(2).Find(&users) fmt.Printf("%+v\n", users) //END CODE OMIT }