go+solidity+web写一个简单的水龙头项目3

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1、数据库的增删改查

1、查询所有申请过水龙头的账户数据

go func ListAcc() (facuetst []FAUCET, err error) { var sqlStr = `SELECT * FROM faucet ` // 查询数据 rows, err := db.Query(sqlStr) if err != nil { return nil, err } // 按行读取数据到结构体成员中 for rows.Next() { faucetStr := FAUCET{} err = rows.Scan(&faucetStr.ID, &faucetStr.Account, &faucetStr.Timenow) if err != nil { return nil, err } facuetst = append(facuetst, faucetStr) } return }

2、插入数据

当有账户申请水龙头的时候,插入数据 ```go func InsertFaucet(account string) (err error) {

nowTime := time.Now() var sqlStr = INSERT INTO faucet(account,timeNow) VALUES (?,?) fmt.Println("插入数据") _, err = db.Exec(sqlStr, account, nowTime) if err != nil { fmt.Println("连接失败",err) return err } fmt.Println("插入数据成功") return nil } ```

更新

当账户申请了水龙头并转账后,eth发行总量就会增加

``` func UpdataETH() (err error) {

var sqlStr = UPDATE statistics set ETHAmount=ETHAmount+3.7886 where id=1 fmt.Println("更新数据") _, err = db.Exec(sqlStr) if err != nil { fmt.Println("连接失败",err) return err } fmt.Println("更新数据成功") return nil } ``` 其他操作数据库的代码都差不多,就不一一展示了

配置文件

//为main.go文件不显得冗余,配置配置文件可以为以后迭代,更改数据库、http地址等更加的方便,不用在几千行甚至上万行的代码中找一个路径。 cfg.json : { "host": "127.0.0.1", "port": "3333", "dbfile": "faucet.sql", "web": "C:\Users\袁硕\Desktop\static" } config.go : ``` package cfg

import ( "encoding/json" "fmt" "io/ioutil" )

// 定义配置信息结构体,从配置文件读入 type Config struct { Host string json:"host" // 监听的http地址 Port string json:"port" // 监听的http端口 DbFile string json:"dbfile" // mysql数据库文件 WebDir string json:"web" // web静态文件所在的目录 }

// 读入配置文件 func LoadConfig(file string) (c *Config, err error) { // 将文件读到内存中,为一个切片类型 data, err := ioutil.ReadFile(file) if err != nil { return nil, err }

// json解析切片数据,反序列化到结构体中 c = &Config{} err = json.Unmarshal(data, c) fmt.Println(*c, err) return c, err } ```

main.go调用

main.go文件只需要调用他们就足够了 ```go package main

import ( "awesomeProject/cfg" "awesomeProject/db" "awesomeProject/logic" "fmt" ) func main(){ //数据库初始化 db.Init()

//读取配置文件 c, err := cfg.LoadConfig("cfg.json") if err != nil { fmt.Printf("载入配置文件错误:%v\n", err) return } fmt.Println(*c)

//启动配置文件 err = logic.Start(fmt.Sprintf("%s:%s", c.Host, c.Port), c.WebDir)

if err != nil { fmt.Printf("web服务错误:%v\n", err) return }

} ```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值