Golang-sqlx

初始化数据库

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
	_ "github.com/jmoiron/sqlx"
	"time"
)
type Text struct {
	Question string `db:"question"`
	Answer string `db:"answer"`
	OptionA string `db:"optionA"`
	OptionB string `db:"optionB"`
	OptionC string `db:"optionC"`
	OptionD string `db:"optionD"`
	No string `db:"no"`
}
func connect() *sqlx.DB {
	db, _ := sqlx.Connect("mysql", "root:@(localhost:3306)/test?charset=utf8mb4&parseTime=True&loc=Local")
	db.SetConnMaxLifetime(time.Second * 10)
	db.SetMaxOpenConns(20) // 设置与数据库建立连接的最大数目
	db.SetMaxIdleConns(10) // 设置连接池中的最大闲置连接数
	return db
}

查询语句

var db *sqlx.DB
func main() {
	db = connect()
	Select()
}

func Select()  {
	var text[] Text
	sql:="select * from danxuan limit 5"
	_ = db.Select(&text,sql)
	fmt.Println(text)
}

插入

// 插入数据
var db *sqlx.DB
func main() {
	db = connect()
	insert()
}
func insert() {
	sqlStr := "insert into danxuan values (?,?,?,?,?,?,?)"
	_, err := db.Exec(sqlStr, 10087,"你好","A.123","B.456","C.789","D.123","C")
	if err != nil {
		fmt.Printf("插入失败, err:%v\n", err)
		return
	}
	fmt.Printf("插入成功 %d.\n")
}

更新数据

var db *sqlx.DB
func main() {
	db = connect()
	Update()
}
func Update() {
	sqlStr := "update danxuan set question=? where no = ?"
	ret, err := db.Exec(sqlStr, "修改了呀", 10087)
	if err != nil {
		fmt.Printf("更新失败, err:%v\n", err)
		return
	}
	n, _ := ret.RowsAffected() // 操作影响的行数
	fmt.Printf("update success, affected rows:%d\n", n)
}

删除数据

var db *sqlx.DB
func main() {
	db = connect()
	Delete()
}
func Delete() {
	sqlStr := "delete from danxuan where no = ?"
	ret, err := db.Exec(sqlStr, 10087)
	if err != nil {
		fmt.Printf("delete failed, err:%v\n", err)
		return
	}
	n, _ := ret.RowsAffected() // 操作影响的行数
	fmt.Printf("删除成功, affected rows:%d\n", n)
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面向结果编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值