我好像解决golang语言爆数据库连接的问题, 昨晚解决的,虽然间中还会爆,但程序不会死掉,仍然能继续运行,原来一方面是我的程序问题,另一方面好像是连接真没有断开,加个ping之类就可以断开了,不过只是貌似而已, 不知道这样处理对不对呢。
以下是我打开数据库和关闭数据库的代码:
func closeDB(aDB *sql.DB) { err4:=aDB.Ping() if err4 != nil { fmt.Println("CloseDB Ping Error:",err4) } } func openDB() *sql.DB { // db, err := sql.Open("mysql", "root:123456789@tcp(localhost:3306)/getbbs?charset=utf8") db, err := sql.Open("postgres", "host=127.0.0.1 user=postgres password=123456789 port=5432 dbname=getbbs2 sslmode=disable") checkErr(err,999) db.SetMaxIdleConns(2) err3:=db.Ping() if err3 != nil { println("DB Ping:",err3) } return db } func checkErr(err error,hh int){ if err != nil{ fmt.Printf("error "+strconv.Itoa(hh)+"\n",err) panic(err) } }
不过有时连接还是会爆掉,我的postgresql已经设置连接到320了,简直悲剧, 总之就是不够Java程序稳定呢。
现在总之数据库连接会释放了,另外确实如网上所说,go语言的数据库驱动速度比不上Java的JBDC , 等有新发现再补充啊.
还是想说句,还是Java稳定.
感觉go数据库的连接很不稳定呢.