Может ли конечный пользователь (разработка или производство), пожалуйста, порекомендовать пакет драйверов Sql, который предпочтительно использует пакет «database/sql». Меня интересуют Postgres, ODBC, MySql (и, возможно, что-то еще, но для большого объема, то есть не Sqlite), которые могут быть предпочтительно использованы в Windows и/или Linux (желательно оба). Чтобы быть интересным для меня, он, вероятно, должен быть недавно обновлен/сохранен и должен работать с последним релизом Go. Эффективность (пропускная способность), очевидно, важна. Любые соответствующие комментарии приветствуются.Использование драйвера базы данных sql
ответ
GO-SQL-Driver (MySQL):
Пример таблицы:
CREATE TABLE `userinfo` (
`uid` INT(10) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(64) NULL DEFAULT NULL,
`departname` VARCHAR(64) NULL DEFAULT NULL,
`created` DATE NULL DEFAULT NULL,
PRIMARY KEY (`uid`)
)
CREATE TABLE `userdetail` (
`uid` INT(10) NOT NULL DEFAULT '0',
`intro` TEXT NULL,
`profile` TEXT NULL,
PRIMARY KEY (`uid`)
)
Пример кода:
package main
import (
_ "github.com/Go-SQL-Driver/MySQL"
"database/sql"
"fmt"
)
func main() {
db, err := sql.Open("mysql", "reckhou:[email protected]/test?charset=utf8")
checkErr(err)
//Insert
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
checkErr(err)
res, err := stmt.Exec("reckhou", "IT", "2010-10-02")
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
// Update
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)
res, err = stmt.Exec("update", id)
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
fmt.Println(affect)
//Query
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
for rows.Next() {
var uid int
var username string
var department string
var created string
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}
//Delete
stmt, err = db.Prepare("delete from userinfo where uid=?")
checkErr(err)
res, err = stmt.Exec(id)
checkErr(err)
affect, err = res.RowsAffected()
checkErr(err)
fmt.Println(affect)
db.Close()
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
PostgreSQ L:
Пример таблицы:
CREATE TABLE userinfo
(
uid serial NOT NULL,
username character varying(100) NOT NULL,
departname character varying(500) NOT NULL,
Created date,
CONSTRAINT userinfo_pkey PRIMARY KEY (uid)
)
WITH (OIDS=FALSE);
CREATE TABLE userdeatail
(
uid integer,
intro character varying(100),
profile character varying(100)
)
WITH(OIDS=FALSE);
Пример кода:
import (
"database/sql"
"fmt"
_ "github.com/bmizerany/pq"
)
func main() {
db, err := sql.Open("postgres", "user=reckhou password=reckhou dbname=test sslmode=disable")
checkErr(err)
//Insert
stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")
checkErr(err)
res, err := stmt.Exec("reckhou", "IT", "2010-10-01")
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
// Update
stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")
checkErr(err)
res, err = stmt.Exec("update", 1)
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
fmt.Println(affect)
// Query
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
for rows.Next() {
var uid int
var username string
var department string
var created string
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}
// Delete
stmt, err = db.Prepare("delete from userinfo where uid=$1")
checkErr(err)
res, err = stmt.Exec(1)
checkErr(err)
affect, err = res.RowsAffected()
checkErr(err)
fmt.Println(affect)
db.Close()
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
Спасибо за информацию. Вы активно используете любой из этих драйверов, и если да, то каков ваш опыт? Мое предпочтение, вероятно, связано с Postgres, однако одна из причин, по которой я задаю вопрос, - это проблема, которую я имею в Windows с pq. Я последний раз загружал pq, чтобы повторить попытку 14 апреля 2013 года, и эта проблема не была исправлена. Краткое описание состоит в том, что в Windows, работающей с подключенным к Интернету, он работает очень медленно (коэффициент около 40), в том числе с встроенными тестами. При отключенном интернете это, вероятно, как ожидается, или, по крайней мере, этот фактор быстрее. (Проблема № 69) –
@BrianOh Я не использую окна сейчас, не могу дать вам совета по этому поводу. Я думаю, что это не вина водителя, вы должны проверить свою сеть и установить настройки, или переместить DB в Linux. –
Спасибо за совет. Мне нужно использовать Windows для другого программного обеспечения, которое я использую, а также предпочитаю то, что работает на обоих. Я не думаю, что это сеть или настройки, потому что psql и другое программное обеспечение базы данных работают без проблем и очень быстро. Возможно, это мои настройки соединения для pq, но я не знаю, и никто не предложил их изменить. –
- 1. Использование базы данных web sql
- 2. Использование драйвера JTDS
- 3. Ограничить использование базы данных базы данных
- 4. SQL базы данных базы данных
- 5. Копирование базы данных с помощью драйвера Монго
- 6. OSGi ClassNotFoundException при загрузке драйвера базы данных
- 7. Класс драйвера базы данных Hibernate не найден
- 8. Использование UNION через базы данных | SQL
- 9. Использование файла базы данных SQL Server
- 10. Использование SQL для очистки базы данных JIRA
- 11. Использование C#, базы данных SQL, Как до
- 12. Почему использование базы данных SQL Azure пульсирует?
- 13. Использование базы данных SQL WHERE в Android?
- 14. Использование Settings.settings или базы данных SQL?
- 15. Использование базы данных (JDBC) SQL в Android
- 16. Использование базы данных SQL в коммерческих проектах
- 17. Установка и использование драйвера MS SQL JDBC?
- 18. Использование драйвера сервера hibernate и ms sql
- 19. Использование локальной базы данных
- 20. Обновление Java-базы данных SQL-базы данных
- 21. Имя драйвера сервера sql
- 22. Использование Laravel аутентификации с базой данных драйвера
- 23. Использование базы данных% от max
- 24. Использование osmdroid для базы данных базы данных
- 25. Установка драйвера подключения базы данных Java в Windows 8
- 26. Использование курсора SQL для отображения данных из базы данных
- 27. Mysql Использование первичной базы данных
- 28. ASP.NET MVC Использование базы данных
- 29. Формат базы данных базы данных SQL
- 30. Сумма базы данных базы данных SQL
В проекте я работал в прошлом мы имели наибольший успех с Postgres в go, но я не могу вспомнить, какой из драйверов пары мы выбрали. – cthom06