GO查询数据库用结构体接收

该博客展示了如何使用Go语言连接数据库并执行SQL查询。内容包括从`LPAR`表中获取数据,定义`LPAR`结构体,填充数据到结构体数组,并将结果转换成JSON格式。博客还提供了将结构体数组转换为JSON字符串的辅助函数。
摘要由CSDN通过智能技术生成
ruiyun=# \d lpar;
                       Table "public.lpar"
   Column    |       Type        | Collation | Nullable | Default 
-------------+-------------------+-----------+----------+---------
 sn          | character varying |           | not null | 
 name        | character varying |           | not null | 
 status      | character varying |           |          | 
 ifl         | integer           |           |          | 
 mem         | integer           |           |          | 
 description | character varying |           |          | 
Indexes:
    "lpar_pkey" PRIMARY KEY, btree (sn, name)

ruiyun=# 生成文件a
ruiyun=# 

wei@wei:~$ cat a|awk -F \| '{print $1,"string"}'|awk '{print $1,$2}'|sed -e "s/^\(.\)/\u\1/g"
Sn string
Name string
Status string
Ifl string
Mem string
Description string
wei@wei:~$ 
wei@wei:~$ cat a|awk -F \| '{print $1,"string"}'|awk '{print $1,$2}'|sed -e "s/^\(.\)/\u\1/g"|awk '{print "&ListLPAR[i]."$1","}'
&ListLPAR[i].Sn,
&ListLPAR[i].Name,
&ListLPAR[i].Status,
&ListLPAR[i].Ifl,
&ListLPAR[i].Mem,
&ListLPAR[i].Description,
wei@wei:~$
package ZC

import (
   "bytes"
   "database/sql"
   "encoding/json"
   "fmt"
   "log"
)

type LPAR struct {
   Sn string
   Name string
   Status string
   Ifl string
   Mem string
   Description string
}

func ZCLPARGL(db *sql.DB)  ([]LPAR,int) {
   var ListLPAR []LPAR
   ListLPAR = make([]LPAR,5000,5000)
   rows,err := db.Query("select * from LPAR")
   if err != nil {
      log.Println(err)
      return nil,0
   }
   i := 0
   for rows.Next(){
      rows.Scan(&ListLPAR[i].Sn,
         &ListLPAR[i].Name,
         &ListLPAR[i].Status,
         &ListLPAR[i].Ifl,
         &ListLPAR[i].Mem,
         &ListLPAR[i].Description)
      //fmt.Println(ListUser[i])
      i++
   }
   return ListLPAR,i-1
}


func ListLPAR2Str(l []LPAR,i int) string {
   var s = "["
   var c int
   for ;c<i;c++ {
      b,_ := json.Marshal(l[c])
      s += string(b)+","
   }
   send,_ := json.Marshal(l[i])
   s += string(send)+"]"

   //格式化一下json字符串:
   var str bytes.Buffer
   _ = json.Indent(&str,[]byte(s),"","    ")
   return fmt.Sprintln(str.String())
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值