培训首页  >  web前端新闻  >  兄弟连区块链教程:Go与MySQL的交互

兄弟连区块链教程:Go与MySQL的交互

[2018-09-28 17:15:38] 浏览量:207 来源:

北京兄弟连IT

  兄弟连区块链入门教程MySQL数据库5GoMySQL的交互“区块链+时代无疑会是下一个风口,然而现在的区块链行业专业型人才正在遭遇瓶颈”兄弟连教育区块链培训学院院长尹成表示,“希望能通过兄弟连教育区块链学院为社会为企业培养并输送更多优质的区块链高精尖型技术。(

 

下载第三方依赖

go get github.com/jmoiron/sqlx

go get github.com/go-sql-driver/mysql

· 1

· 2

· 其中github.com/jmoiron/sqlx是我们需要用到的主要类库

· github.com/go-sql-driver/mysql是作为MySQL的驱动程序存在的,我们只需要执行包的init方法即可

引入依赖

import (

"github.com/jmoiron/sqlx"

 

//执行mysql包的init方法

_"github.com/go-sql-driver/mysql"

 

"fmt"

)

建立测试数据库表

create database mydb charset=utf8;

 

use mydb;

 

create table person(

  id int primary key auto_increment,

  name varchar(20) unique not null,

  age int default 0,

  dollar float default 1

);

 

alter table person add sex bool;

alter table person add schoolday date;

alter table person add birthtime datetime;

定义与数据表向匹配的结构体

/*

id | name   | poem | age  | dollar  | sex  | schoolday  | birthtime

*/

type Person struct {

//所有属性必须公开——框架会转化查询结果为结构体对象

//标签名写法:`db:"表字段名"`

Name string `db:"name"`

Age int `db:"age"`

Dollar float32 `db:"dollar"`

}

执行增删改查操作

· 增删改的方式是db.Exec(sql)

· 查询的方式是:db.select(&model,sql)

func main() {

//连接数据库

db, _ := sqlx.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/mydb")

defer db.Close()

 

//执行增删改,获得受影响的行数

result, _ := db.Exec("insert into person(name,age,sex,schoolday,birthtime) values(?,?,?,?,?);", "双黄蛋", 35, false, 20080813, 20180814164300)

rowsAffected, _:= result.RowsAffected()

lastInsertId, _ := result.LastInsertId()

fmt.Println("受影响的行数",rowsAffected,"最后一条记录的id",lastInsertId)

 

//执行增删改

db.Exec("insert into person(name,age,sex,schoolday,birthtime) values(?,?,?,?,?);", "双黄蛋", 35, false, 20080813, 20180814164300)

db.Exec("delete from person where id=?;", 2)

db.Exec("update person set name=? where name=?;", "张俩蛋","张全蛋")

 

//执行查询,获得person对象

//用于接收的数据类型是【结构体切片】,必须包含查询字段对应的公开属性,属性标签应写作:`db:"表字段名"`

var ps []Person

 

//第一个参数是【结构体切片】的地址

err := db.Select(&ps, "select name,age,dollar from person where name like ?;", "%")

if err!=nil{

fmt.Println("err=",err)

}

fmt.Printf("%T,%v\n", ps, ps)

 

fmt.Println("执行成功!")

}

 本文出自兄弟连区块链教程:更多区块链视频教程/源码/课件/学习资料-企鹅QUN:

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息