mysql模块下载

mysql模块我们从github上下载,地址为:www.github.com/go-sql-driver/mysql

go get  "github.com/go-sql-driver/mysql"
go get "github.com/jmoiron/sqlx"

struct字段名一样

我们先创建一个表来做测试,sql语句如下

mysql> use test
Database changed
mysql> create table person (user_id int primary key auto_increment, username varchar(260), sex varchar(260), email varchar(260)) charset utf8;
mysql> CREATE TABLE place ( country varchar(200), city varchar(200), telcode int) charset utf8;

我们如果要操作数据库数据,首先要定义一个结构体,结构体的变量名字必须和表字段一样。

type Person struct{
// 所有字段必须和数据库的保持一致,如果第一列使用了和数据库字段不一样的名字,那么就需要在
// ·· 之间写明真正的字段名
UserId int `db:"user_id`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
type Place struct{
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
}

insert sql command

我们创建好数据库以后,那么就开始插入数据库。

package main
import (
"fmt" _ "github.com/go-sql-driver/mysql" // 导入数据库模块
"github.com/jmoiron/sqlx" // 导入数据库模块
)
var Db *sqlx.DB func init() {
// 把连接数据库的方法放在这里的话,那么函数一执行的话就会连接数据库了。
// 连接格式为(数据库类型,用户名:密码@tcp(ip:port)/库名
database, err := sqlx.Open("mysql", "root:123..aa@tcp(192.168.56.14:3306)/test")
if err != nil {
fmt.Println("open mysql faild,", err)
return
}
Db = database
} func main() {
r, err := Db.Exec("insert into person values(?,?,?,?)", 2, "Leo", "man", "test@qq.com") //执行插入动作的sql语句
if err != nil {
fmt.Println("exec sql command failed", err)
return
}
id, err := r.LastInsertId() // 插入成功后会返回这条记录的自增ID
if err != nil {
fmt.Println("get the insert ID failed", err)
return
}
fmt.Println("insert successful, the id :", id)
}

update sql command

更新数据库的sql语句

// mysql_update
package main import (
"fmt" _ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
) var Db *sqlx.DB func init() {
conn, err := sqlx.Open("mysql", "root:123..aa@tcp(192.168.56.14:3306)/test")
if err != nil {
fmt.Println("connect mysql failed,", err)
return
}
Db = conn
} func main() {
_, err := Db.Exec("update person set username=? where user_id=?", "ljf", 1)
if err != nil {
fmt.Println("execute sql command happend a error,", err)
return
}
fmt.Println("the result:", _)
}

select sql command

mysql查询语句。

// mysql_select
package main import (
"fmt" _ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
) type Person struct {
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
} type Place struct {
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
} var Db *sqlx.DB func init() {
database, err := sqlx.Open("mysql", "root:123..aa@tcp(192.168.56.14:3306)/test")
if err != nil {
fmt.Println("connect mysql failed", err)
return
}
Db = database
} func main() {
var person []Person
err := Db.Select(&person, "select * from person;")
if err != nil {
fmt.Println("exec failded", err)
return
}
fmt.Println("select succ:", person)
}

delete sql command

删除的sql语句

// mysql_delete
package main import (
"fmt" _ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
) var Db *sqlx.DB func init() {
conn, err := sqlx.Open("mysql", "root:123..aa@tcp(192.168.56.14:3306)/test")
if err != nil {
fmt.Println("connect mysql failed,e:", err)
return
}
Db = conn
} func main() {
result, err := Db.Exec("delete from person where user_id=?", 2)
if err != nil {
fmt.Println("execute sql command error", err)
return
} fmt.Println("result", result) }

16 go操作Mysql的更多相关文章

  1. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  2. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  3. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  4. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  5. Python开发【第十九篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  6. 【Python之路Day12】网络篇之Python操作MySQL

    pymysql是Python中操作MySQL的模块,使用方法和MySQLDB几乎一样. 1. 执行SQL语句 #!/usr/bin/env python3 # -*- coding: utf-8 -* ...

  7. python学习之操作mysql

    欢迎点击个人博客 http://www.iwangzheng.com/ 刚开始学python,所以很多代码都需要在ipython里尝试一下.今天记录的是最基本的操作mysql数据库. 写数据库连接操作 ...

  8. python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy

    内容一览: 1.Python操作MySQL数据库 2.ORM sqlalchemy学习 1.Python操作MySQL数据库 2. ORM sqlachemy 2.1 ORM简介 对象关系映射(英语: ...

  9. Day12(补充) Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

随机推荐

  1. java基础篇---反射机制

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

  2. [转]cron表达式详解

    原文地址:https://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6 ...

  3. Maven项目编译后classes文件中没有.xml问题

    在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml ...

  4. 主流HTML5游戏框架的分析和对比

    本文主要选取了Construct2.ImactJS.LimeJS.GameMaker.CreateJS.lycheeJS.Crafty.three.js.melonJS.Turbulenz.Quint ...

  5. IEnumerable<T> 转换为数组

    IEnumerable<User> userlist=xxxx; string[] ids=userlist.select(u=>u.id).toArray();

  6. Spark编程指南

    1.在maven里面添加引用,spark和hdfs的客户端的. groupId = org.apache.spark artifactId = spark-core_2.9.3 version = 0 ...

  7. aps.net MVC view 判断方法

    两种方式 1.使用Razor 视图 新建app_code文件夹(在这个目录下ShowHelper.cshtml会自动编译成类,方法必须都是静态的) @functions{ //是否显 public s ...

  8. eclipse配置google代码风格

    1.下载google code style的xml文件 地址:https://github.com/google/styleguide 导入xml文件 可能会遇到警告: 版本的问题,忽略即可. < ...

  9. 理解ArrayList与LinkedList的区别

    一.先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只 ...

  10. webpack9--删除冗余的CSS

    我们在写代码的时候可能有些CSS并没有用到,我们如何利用webpack将冗余的CSS清除掉呢? 可以使用 purifycss-webpack 达到该目的. 1.安装 purifycss-webpack ...