Как получить ответ в виде массива из базы данных?

Добрый день!
Пытаюсь разобраться как в golang работать с базой данных.
В качестве СУБД у меня postgres
Написал вот такой код:
func main() {
	db, err := sql.Open("postgres", config.PostgresqlConfig)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	rows, err := db.Query("SELECT * FROM tablename")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	for rows.Next() {
		var a, b string

		err := rows.Scan(&a, &b)

		if err != nil {
			fmt.Println(err)
			continue
		}
		fmt.Println(a, b)
	}
}

Данные я записываю в переменные вот так:
err := rows.Scan(&a, &b)
Все работает, но мне так не совсем удобно, могу ли я как то получить ответ в виде массива или слайса?
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 3
Удобнее всего работать с базой данных в golang с использованием ORM. Например, gorm.
Ответ написан
Комментировать
yellow79
@yellow79
Senior Software Engineer
Внутри цикла просто вставляйте свои переменные в слайс, а после цикла занимайтесь обработкой полученного слайса
Ответ написан
@PapaStifflera
Родился, вырос...
С драйвером "из коробки" не сможете.
Для постгри есть альтернатива - go-pg (https://github.com/go-pg/pg). Он позволяет делать то, что вам нужно. И еще кучу всего.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы