pool
This commit is contained in:
parent
b135da6a00
commit
e30c7b7100
1
go.sum
1
go.sum
|
@ -51,6 +51,7 @@ github.com/jackc/pgx/v4 v4.1.2 h1:xZwqiD9cP6zF7oJ1NO2j9txtjpA7I+MdfP3h/TAT1Q8=
|
|||
github.com/jackc/pgx/v4 v4.1.2/go.mod h1:0cQ5ee0A6fEsg29vZekucSFk5OcWy8sT4qkhuPXHuIE=
|
||||
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v1.0.0 h1:rbjAshlgKscNa7j0jAM0uNQflis5o2XUogPMVAwtcsM=
|
||||
github.com/jackc/puddle v1.0.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/klauspost/compress v1.8.2 h1:Bx0qjetmNjdFXASH02NSAREKpiaDwkO1DRZ3dV2KCcs=
|
||||
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/url"
|
||||
"reflect"
|
||||
|
||||
"git.loafle.net/loafer/di-go"
|
||||
|
@ -12,7 +13,7 @@ import (
|
|||
"git.loafle.net/totopia/server/pkg/loafer/web/router"
|
||||
"github.com/valyala/fasthttp"
|
||||
|
||||
"github.com/jackc/pgx/v4"
|
||||
"github.com/jackc/pgx/v4/pgxpool"
|
||||
)
|
||||
|
||||
type MethodMapping struct {
|
||||
|
@ -21,15 +22,30 @@ type MethodMapping struct {
|
|||
}
|
||||
|
||||
func Run(t reflect.Type) error {
|
||||
conn, err := pgx.Connect(context.Background(), fmt.Sprintf("host=%s port=%d user=%s "+
|
||||
"password=%s dbname=%s sslmode=disable",
|
||||
"localhost", 54320, "totopia", "totopia", "totopia"))
|
||||
pgURL := &url.URL{
|
||||
Scheme: "postgres",
|
||||
User: url.UserPassword("totopia", "totopia"),
|
||||
Path: "totopia",
|
||||
}
|
||||
q := pgURL.Query()
|
||||
q.Add("sslmode", "disable")
|
||||
pgURL.RawQuery = q.Encode()
|
||||
|
||||
config, err := pgxpool.ParseConfig(pgURL.String())
|
||||
if err != nil {
|
||||
return fmt.Errorf("[%v]", err)
|
||||
}
|
||||
defer conn.Close(context.Background())
|
||||
config.ConnConfig.Host = "localhost"
|
||||
config.ConnConfig.Port = 54320
|
||||
|
||||
di.RegisterResource("dbConn", conn)
|
||||
pool, err := pgxpool.ConnectConfig(context.Background(), config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("[%v]", err)
|
||||
}
|
||||
|
||||
defer pool.Close()
|
||||
|
||||
di.RegisterResource("dbConnPool", pool)
|
||||
|
||||
taServer := di.GetTypeAnnotation(t, appAnnotation.ServerAnnotationType)
|
||||
if nil == taServer {
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
"git.loafle.net/loafer/annotation-go"
|
||||
"git.loafle.net/loafer/di-go"
|
||||
|
||||
"github.com/jackc/pgx/v4"
|
||||
"github.com/jackc/pgx/v4/pgxpool"
|
||||
)
|
||||
|
||||
var UserDaoType = reflect.TypeOf((*UserDao)(nil))
|
||||
|
@ -20,20 +20,28 @@ func init() {
|
|||
type UserDao struct {
|
||||
annotation.TypeAnnotation `annotation:"@web:Dao(\"name\": \"/userDao\")"`
|
||||
|
||||
Conn *pgx.Conn `annotation:"@Resource(\"name\": \"dbConn\")"`
|
||||
Pool *pgxpool.Pool `annotation:"@Resource(\"name\": \"dbConnPool\")"`
|
||||
}
|
||||
|
||||
func (ud *UserDao) FindAll() {
|
||||
log.Printf("UserDao FindAll")
|
||||
row, err := ud.Conn.Query(context.Background(), "SELECT NOW()")
|
||||
|
||||
conn, err := ud.Pool.Acquire(context.Background())
|
||||
if nil != err {
|
||||
log.Printf("%v", err)
|
||||
return
|
||||
}
|
||||
defer conn.Release()
|
||||
|
||||
row, err := conn.Query(context.Background(), "select count(*) from users")
|
||||
if nil != err {
|
||||
log.Printf("%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if row.Next() {
|
||||
var date string
|
||||
var date int64
|
||||
row.Scan(&date)
|
||||
log.Printf("%s", date)
|
||||
log.Printf("%d", date)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user