コード例 #1
0
ファイル: crawl_news.go プロジェクト: ZCLanner/WebZhihuNews
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
}
コード例 #2
0
ファイル: goroutine.go プロジェクト: matm/gobuild
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")
}
コード例 #3
0
ファイル: maxconnect.go プロジェクト: jimmykuu/xorm
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")
}
コード例 #4
0
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
}
コード例 #5
0
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
}