Pro Information

اشتراک گذاری اطلاعات

Professional Information

اشتراک گذاری اطلاعات

ارتباط با دیتابیس PostgreSQL github.com/lib/pq


----------------مقدمات اجرا ----------------

go mod init hello

go get github.com/lib/pq


------------------------------------------اطلاعات go.mod-----------------------

module hello

go 1.17

require github.com/lib/pq v1.10.2


go.sum

github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=

------------------------------ ساخت جدول UserInfo-------------------------------------------------

-- Table: public.userinfo

-- DROP TABLE public.userinfo;

CREATE TABLE IF NOT EXISTS public.userinfo
(
uid integer NOT NULL DEFAULT nextval('userinfo_uid_seq'::regclass),
username character varying(100) COLLATE pg_catalog."default" NOT NULL,
departname character varying(500) COLLATE pg_catalog."default" NOT NULL,
created date,
CONSTRAINT userinfo_pkey PRIMARY KEY (uid)
)

TABLESPACE pg_default;

ALTER TABLE public.userinfo
OWNER to postgres;


----------------------------------اطلاعات صفحه main.go--------------------------------------------

package main

import (
    "database/sql"
    "fmt"
    "time"

    _ "github.com/lib/pq"
)

const (
    DB_USER     = "Amir"
    DB_PASSWORD = "Ki_123456"
    DB_NAME     = "test"
)

func main() {
    dbinfo := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable",
        DB_USER, DB_PASSWORD, DB_NAME)
    dberr := sql.Open("postgres", dbinfo)
    checkErr(err)
    defer db.Close()

    fmt.Println("# Inserting values")

    var lastInsertId int
    err = db.QueryRow("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) returning uid;""astaxie""AmirKian""2012-12-09").Scan(&lastInsertId)
    checkErr(err)
    fmt.Println("last inserted id =", lastInsertId)

    fmt.Println("# Updating")
    stmterr := db.Prepare("update userinfo set username=$1 where uid=$2")
    checkErr(err)

    reserr := stmt.Exec("astaxieupdate", lastInsertId)
    checkErr(err)

    affecterr := res.RowsAffected()
    checkErr(err)

    fmt.Println(affect, "rows changed")

    fmt.Println("# Querying")
    rowserr := db.Query("SELECT * FROM userinfo")
    checkErr(err)

    for rows.Next() {
        var uid int
        var username string
        var department string
        var created time.Time
        err = rows.Scan(&uid, &username, &department, &created)
        checkErr(err)
        fmt.Println("uid | username | department | created ")
        fmt.Printf("%3v | %8v | %6v | %6v\n", uid, username, department, created)
    }

    // fmt.Println("# Deleting")
    // stmt, err = db.Prepare("delete from userinfo where uid=$1")
    // checkErr(err)

    // res, err = stmt.Exec(lastInsertId)
    // checkErr(err)

    // affect, err = res.RowsAffected()
    // checkErr(err)

    // fmt.Println(affect, "rows changed")
}

func checkErr(err error) {
    if err != nil {
        panic(err)
    }
}
--------------------------------------------------------------------------


https://pkg.go.dev/github.com/lib/pq
https://github.com/jackc/pgx/wiki/Getting-started-with-pgx


برچسب ها :

ADS

ADS

2024 © کلیه حقوق مادی و معنوی این سایت متعلق به آقای امیر کیانی گهر می باشد