cpp

Установка модулей

Созданный модуль можно загрузить в репозиторий, например, на сайт https://github.com, и сделать его доступным для всех пользователей. Для этого понадобится программа Git. Загрузить модуль из репозитория или обновить существующий позволяет следующая команда:

go get -u <Путь к модулю>

В качестве примера загрузим драйвер СУБД MySQL, который понадобится нам в главе 16:

C:\book\packages>go get -u github.com/go-sql-driver/mysql
go: downloading github.com/go-sql-driver/mysql v1.6.0
go get: added github.com/go-sql-driver/mysql v1.6.0

Обратите внимание на содержимое файла go.mod, там появилась зависимость:

module exanple.com/mymodule

go 1.17

require github.com/go-sql-driver/mysql v1.6.0 // indirect

Кроме того, был создан файл go.sum со следующим содержимым:

github.com/go-sql-driver/mysql v1.6.0 
h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod 
h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=

Остальное содержимое модуля не изменилось. Куда же был установлен модуль? При установке Go была автоматически создана переменная окружения GOPATH. Давайте выведем ее значение:

C:\book\packages>echo %GOPATH%
C:\Users\Unicross\go

В каталог C:\Users\<Имя пользователя>\go\pkg\mod и был установлен модуль. Путь до каталога C:\Users\<Имя пользователя>\go\bin был автоматически добавлен в системную переменную PATH при установке Go.

Теперь попробуем подключиться к базе данных MySQL. Для изучения взаимодействия с Интернетом и работы с базами данных нам понадобится установить на компьютер пакет XAMPP, который включает Web-сервер Apache, PHP, Perl, MySQL (MariaDB) и phpMyAdmin. Для загрузки пакета переходим на страницу https://www.apachefriends.org/index.html и скачиваем установочный EXE-файл. Процесс установки очень прост и в комментариях не нуждается. На всех шагах мастера соглашаемся с настройками по умолчанию. Очень важно при установке разрешить запуск серверов Apache и MySQL. Если на компьютере установлен брандмауэр Windows или антивирусная программа, то эти серверы необходимо добавить в список исключений.

В итоге пакет будет установлен в каталог C:\xampp. Запускаем XAMPP Control Panel (файл C:\xampp\xampp-control.exe) и пробуем запустить серверы. Для этого щелкаем на кнопках Start у пунктов Apache и MySQL. Если антивирусная программа или брандмауэр сообщают, что программа заблокирована, то необходимо обязательно разрешить ее запуск. Web-сервер Apache запускается на портах 80 и 443, а сервер MySQL использует порт 3306. Для проверки работоспособности открываем браузер и в адресной строке вводим: http://localhost/ — должно отобразиться приветствие пакета XAMPP. Для проверки работоспособности PHP вводим: http://localhost/dashboard/phpinfo.php, а для проверки phpMyAdmin: http://localhost/phpmyadmin/.

Если серверы не запустились, то открываем командную строку (обязательно с привилегиями администратора!) и набираем команду:

netstat -anb

Смотрим, какие программы занимают порты 80, 443 и 3306. Обычно эти порты занимают программы Skype и Web-сервер IIS. Перед запуском Apache эти программы нужно остановить.

Теперь нужно создать базу данных, которую будем использовать в наших примерах. Открываем в браузере программу phpMyAdmin (http://localhost/phpmyadmin/). Щелкаем на ссылке Создать БД. В текстовое поле вводим название godb, из списка выбираем пункт utf8_general_ci и нажимаем кнопку Создать. Новая база данных будет добавлена в список слева.

Добавим таблицу в базу данных. В списке слева выбираем базу данных godb. Справа переходим на вкладку SQL и в поле вводим следующие команды и нажимаем кнопку Вперед:

CREATE TABLE `test` (
   `id` mediumint(6) auto_increment,
   `name` char(150),
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`, `name`) VALUES
(1, 'Программирование'),
(2, 'Музыка'),
(3, 'Поисковые порталы');

Подключимся к базе данных godb из программы и выведем содержимое таблицы test (листинг 12.6).

Листинг 12.6. Содержимое файла C:\book\packages\main.go

package main

import (
   "fmt"
   "database/sql"
   _ "github.com/go-sql-driver/mysql"
)

func main() {
   db, err := sql.Open("mysql", "root:@/godb")
   if err != nil {
      fmt.Println(err)
      return
   }
   defer db.Close()
   rows, err := db.Query("SELECT * FROM `test`")
   if err != nil {
      fmt.Println(err)
      return
   }
   defer rows.Close()
   id := 0
   name := ""
   for rows.Next() {
      err := rows.Scan(&id, &name)
      if err != nil {
         fmt.Println(err)
         continue
      }
      fmt.Println(id, name)
   }
}

Итак, подключение к базе данных выполняется с помощью инструкции:

db, err := sql.Open("mysql", "root:@/godb")

В первом параметре функция Open() принимает название драйвера, а во втором параметре — строку с опциями подключения:

[username[:password]@][protocol[(address)]]/dbname[?
param1=value1&...&paramN=valueN]

Значение root означает имя пользователя, а после двоеточия задается его пароль. При использовании XAMPP пользователь root не имеет пароля, поэтому мы указали пустую строку. После слеша задается название базы данных к которой будут выполняться запросы.

Запустим программу на выполнение:

C:\book\packages>go run main.go
1 Программирование
2 Музыка
3 Поисковые порталы

Если получили такой же результат, то можно продолжить изучение материала.

Примечание

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp