В чем разница между sqlx.connect () и sqlx.open ()?

Я использую библиотеку jmoiron sqlx для своего проекта golang. Я попытался создать соединение с базой данных mysql. Итак, я нашел эти две функции: sqlx.Connect() и sqlx.Open(), но не нашел разницы.

Итак, я попытался прочитать документацию в Годок. Я нашел это:

sqlx.Connect ()

Connect to a database and verify with a ping.

sqlx.Open ()

Open is the same as sql.Open, but returns an *sqlx.DB instead.

Я знаю, что sqlx.Open() создает соединение с базой данных с помощью golang sql.Open. Но для чего нужен sqlx.Connect()?

Если я вижу здесь исходный код:

func Connect(driverName, dataSourceName string) (*DB, error) {
    db, err := Open(driverName, dataSourceName)
    if err != nil {
        return nil, err
    }
    err = db.Ping()
    if err != nil {
        db.Close()
        return nil, err
    }
    return db, nil
}

Я вижу, что он вызвал тот же sqlx.Open(), а затем вызвал db.Ping(). Единственная разница в том, что sqlx.Open() выполняет команду ping после создания соединения? Если да, то почему он пингует? Что отличает его?

Спасибо

3
0
2 210
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Connect будет использовать open и ping для проверки действительного соединения, которое затем можно обработать с ошибкой.

По сути, вы можете сразу увидеть, что соединение с базой данных отсутствует в одном методе, вместо того, чтобы писать этот код заново.

Другие вопросы по теме