DAPP智能合约系统开发代码部署方案介绍

简介: DAPP智能合约系统开发代码部署方案介绍

Go实现 MySQL 的事务
开启事务处理,会有回滚机制,全部成功了,且提交成功,才算事务处理成功
func (db DB) Begin() (Tx, error) 事务开始
func (tx *Tx) Commit() error 事务提交
func (tx *Tx) Rollback() error 事务回滚

func trasaction(db *sql.DB) {

//开启一个事务

tx, err := db.Begin()
if err != nil {
    if tx != nil {
        tx.Rollback()
    }
    fmt.Printf("Begin err :%v", err)
    return
}

sqlStr := "update user set name='xxx' where id=?"
_, err = tx.Exec(sqlStr, 9)
if err != nil {
    if tx != nil {
        tx.Rollback()
    }
    fmt.Printf("Exec err :%v", err)
    return
}

sqlStr = "update user set name='xxx' where id=?"
_, err = tx.Exec(sqlStr, 6)
if err != nil {
    if tx != nil {
        tx.Rollback()
    }
    fmt.Printf("Exec err :%v", err)
    return
}

//提交事务
err = tx.Commit()
if err != nil {
    if tx != nil {
        tx.Rollback()
    }
    fmt.Printf("Commit err :%v", err)
    return
}

fmt.Println("commit success ")

}
sqlx使用
咱们还可以使用第三方库 sqlx

安装第三方库 sqlx ,go get github.com/jmoiron/sqlx
第三方库可以提交高开发效率,简化开发操作

package main

import (

"fmt"
"github.com/jmoiron/sqlx"
_ "github.com/go-sql-driver/mysql" // 注释掉后异常 _ 调用初始化函数

)

var db *sqlx.DB

func insertInfo() {

sqlStr := "insert into user(name,age)values(?,?)"
res, err := db.Exec(sqlStr, "xxx", 2)
if err != nil {
    fmt.Printf("Exec err : %v", err)
    return
}
id, err := res.LastInsertId()
if err != nil {
    fmt.Printf("LastInsertId err : %v", err)
    return
}
fmt.Printf("id == %d", id)

rows, err := res.RowsAffected()
if err != nil {
    fmt.Printf("RowsAffected err : %v", rows)
    return
}
fmt.Printf("rows == %d", rows)
return

}

func main() {

var err error
dsn := "root:123456@tcp(127.0.0.1:3306)/go_test?charset=utf8mb4"
db, err = sqlx.Connect("mysql", dsn)
if err != nil {
    fmt.Printf("Connect err : %v\n", err)
    return
}
db.SetMaxOpenConns(20)
db.SetMaxIdleConns(10)

//插入数据
insertInfo()

}

相关文章
|
数据挖掘
深入分析:ERP系统的优势与劣势
深入分析:ERP系统的优势与劣势
1076 3
|
调度 iOS开发 MacOS
【MacOS 系列】mac常用快捷键收集,包含提高开发效率、精选快捷键、内置截图快捷键
【MacOS 系列】mac常用快捷键收集,包含提高开发效率、精选快捷键、内置截图快捷键
521 0
|
自然语言处理 关系型数据库 MySQL
如何在mysql数据库里进行文本的相似度排序?
【8月更文挑战第28天】如何在mysql数据库里进行文本的相似度排序?
727 62
|
8月前
|
存储 数据安全/隐私保护 开发者
领取永久免费的ClawCloud云服务容器部署Alist网盘
领取永久免费的ClawCloud云服务容器部署Alist网盘,这是一款类似于 Vercel 和 Netlify 的在线开发平台,专为开发者和个人用户设计。如 Alist、Dify、frp 等,无需复杂的配置或高昂的成本。目前,平台提供永久免费的 5 刀/月额度,只需绑定一个注册超过 180 天的 GitHub 账号即可享受。
2667 10
|
10月前
|
安全 网络协议 搜索推荐
【荐】免费一年SSL证书申请方法全攻略
锁图 申请免费一年SSL证书的优势包括:提升网站安全性,避免中间人攻击;增强用户信任感;改善SEO排名;降低安全成本。申请流程如下: 1. 访问JoySSL官网选择免费证书套餐。 2. 填写注册信息并输入注册码230922。 3. 验证域名所有权,通常通过电子邮件或DNS设置中的TXT记录。 4. 下载并安装证书到服务器。 5. 检查浏览器地址栏是否显示安全锁图标及“https”。 大部分免费SSL证书有效期为一年,到期后需重新申请或升级付费版。通过上述步骤,您可轻松为网站启用免费SSL证书,保障数据安全并提升用户体验。
|
JavaScript 前端开发
Vue开发必备:$nextTick方法的理解与实战场景
Vue开发必备:$nextTick方法的理解与实战场景
955 1
如何微信公众号中的视频保存下来
如何微信公众号中的视频保存下来
1550 0
|
前端开发 安全 JavaScript
【网络安全 | 网安工具】御剑WEB指纹识别系统使用详析
【网络安全 | 网安工具】御剑WEB指纹识别系统使用详析
715 0
|
缓存 安全
Spotify音乐无法播放的问题如何解决
在使用Spotify时,你有没有遇到“该音乐无法播放”的错误?遇到这种错误时,如何进行应对?希望这篇文章能给为你进行解答
|
SQL 人工智能 JSON
社区供稿 l ChatGLM金融开源FinGLM学习笔记
日前,由中国中文信息学会社会媒体处理专委会主办,智谱 AI、安硕信息、阿里云、魔搭社区、北京交通大学联合承办的「SMP 2023 ChatGLM 金融大模型挑战赛」落下帷幕,该赛事旨在推动大模型在金融垂直行业应用的研究和开发,沉淀大模型落地实践经验。赛后,赛事方第一时间开源开放了赛事相关的代码,目前也开始有开发者小伙伴基于此整理了一些干货笔记,小编特搜罗来向大家分享,希望能给正在关注大模型行业落地的小伙伴们一些帮助。