Golang保存PostgreSQL数据至结构

Posted 快乐坚果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang保存PostgreSQL数据至结构相关的知识,希望对你有一定的参考价值。

具体代码如下:

 1 package main
 2 
 3 import (
 4     "database/sql"
 5     "fmt"
 6     "log"
 7     "reflect"
 8     "net/http"
 9 
10     _ "github.com/lib/pq"
11 )
12 
13 type sys_user struct {
14     su_id      int
15     su_name    string
16     su_gender  string
17     su_age     int
18     su_address string
19     su_im      string
20     su_regtime string
21 }
22 
23 func main() {
24     var su []sys_user
25     var Suaction sys_user = sys_user{}
26 
27     db, err := sql.Open("postgres", "user=admin password=123456 dbname=test sslmode=disable")
28     if err != nil {
29         log.Println("Open error.")
30         log.Println(err)
31     }
32     defer db.Close()
33 
34     rows, err := db.Query("SELECT * FROM sys_user")
35     if err != nil {
36         log.Println("Query error.")
37         log.Println(err)
38     }
39 
40     for rows.Next() {
41         err = rows.Scan(
42             &Suaction.su_id,
43             &Suaction.su_name,
44             &Suaction.su_gender,
45             &Suaction.su_age,
46             &Suaction.su_address,
47             &Suaction.su_im,
48             &Suaction.su_regtime,
49         )
50         if err != nil {
51             log.Println("Scan error.")
52             log.Println(err)
53         }
54 
55         su = append(su, Suaction)
56     }
57 
58     for _, v := range su {
59         v1 := reflect.ValueOf(v)
60         for i := 0; i < v1.NumField(); i++ {
61             fmt.Printf("%40v |", v1.Field(i))
62         }
63         fmt.Println()
64     }
65     http.HandleFunc("/readcookie", ReadCookie)
66     http.HandleFunc("/writecookie", WriteCookie)
67     http.HandleFunc("/deletecookie", DeleteCookie)
68     http.ListenAndServe(":9090", nil)
69 }
70 
71 func WriteCookie(w http.ResponseWriter,r *http.Request)  {
72     //创建新的本地cookie
73     cookie := http.Cookie{Name:"merrynuts",Value:"education",Path:"/",MaxAge:86400}
74     http.SetCookie(w,&cookie)
75     w.Write([]byte("设置cookie成功"))
76 }
77 
78 func ReadCookie(w http.ResponseWriter,r *http.Request)  {
79     //读取cookie
80     cookie,err := r.Cookie("merrynuts")
81     if err == nil {
82         cookieValue := cookie.Value
83         //将数据写入http连接中
84         w.Write([]byte("cookie的值为:"+cookieValue))
85     }else {
86         w.Write([]byte("读取cookie出错:"+err.Error()))
87     }
88 }
89 
90 func DeleteCookie(w http.ResponseWriter,r *http.Request)  {
91     cookie := http.Cookie{Name:"merrynuts",Path:"/",MaxAge:-1}
92     http.SetCookie(w,&cookie)
93     w.Write([]byte("删除cookie成功"))
94 }

 

以上是关于Golang保存PostgreSQL数据至结构的主要内容,如果未能解决你的问题,请参考以下文章

golang笔记-数据库查询结果映射至结构体

golang自己定义数据类型查询与插入postgresql中point数据

golang - channel

golang基础-Postgresql-ORM框架github.com/go-pg/pg学习五(实战)

golang基础-Postgresql-ORM框架github.com/go-pg/pg学习五(实战)

golang生成JSON及解析JSON