• Go语言之进阶篇连接mysql


    一、Go连接mysql

    1、mysql驱动

    地址:https://github.com/Go-SQL-Driver/MySQL

    说明:

    sql.Open()函数用来打开一个注册过的数据库驱动,Go-MySQL-Driver中注册了 mysql这个数据库驱动,第二个参数是DNS,它是Go-MySQL-Driver定义的一些数据库链接和配置信息。

    2、下载mysql驱动包方法

    在LiteIDE中,选中"github.com/go-sql-driver/mysql" 这行代码,再点编译--->"Get",等待一会,就会自动下载完成。

    代码:

    package main
    
    import (
    	"fmt"
    
    	"github.com/go-sql-driver/mysql"   

     或

    #在cmd中运行安装命令
    go get github.com/go-sql-driver/mysql 
    

    3、创建数据库

    1、创建数据库
    mysql> create database nulige character set utf8;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | nulige             |
    | performance_schema |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> use nulige
    Database changed
    
    2、建表
    mysql> create table user_info(id int(11), username varchar(20), departname varch
    ar(20), create_time timestamp default "0000-00-00 00:00:00", primary key(id));
    
    3、查看表
    mysql> show tables;
    +------------------+
    | Tables_in_nulige |
    +------------------+
    | user_info        |
    +------------------+
    1 row in set (0.00 sec)
    
    4、查看表结构
    mysql> desc user_info;
    +-------------+-------------+------+-----+---------------------+-------+
    | Field       | Type        | Null | Key | Default             | Extra |
    +-------------+-------------+------+-----+---------------------+-------+
    | id          | int(11)     | NO   | PRI | 0                   |       |
    | username    | varchar(20) | YES  |     | NULL                |       |
    | departname  | varchar(20) | YES  |     | NULL                |       |
    | create_time | timestamp   | NO   |     | 0000-00-00 00:00:00 |       |
    +-------------+-------------+------+-----+---------------------+-------+
    4 rows in set (0.01 sec)
    

    5、往数据库中插入数据

    示例1:

    package main
    
    import (
    	"database/sql"
    	"fmt"
    
    	_ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
    	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
    	if err != nil {
    		panic(err)
    	}
    
    	//fmt.Println(db.Ping())  检查是否连接成功数据库
    	stmt, err := db.Prepare("INSERT INTO user_info SET username=?,departname=?,create_time=?")
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	res, err := stmt.Exec("nulige", "商务部", "2019-1-28")
    	id, err := res.LastInsertId()
    	if err != nil {
    		panic(err)
    	}
    
    	fmt.Println(id)
    }
    

    执行结果:

    mysql> select * from user_info;
    +----+----------+------------+---------------------+
    | id | username | departname | create_time         |
    +----+----------+------------+---------------------+
    |  0 | nulige   | 商务部      | 2019-01-28 00:00:00 |
    +----+----------+------------+---------------------+
    1 row in set (0.00 sec)

    示例2:  登录mysql,手工插入

    mysql> INSERT INTO user_info (id,username,departname,create_time) VALUES ("2","n
    ulige","行政部","2019-1-11 16:23:00");
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from user_info;
    +----+----------+------------+---------------------+
    | id | username | departname | create_time         |
    +----+----------+------------+---------------------+
    |  0 | nulige   | 商务部    | 2019-01-28 00:00:00 |
    |  1 | nulige   | 技术部    | 2019-01-28 00:00:00 |
    |  2 | nulige   | 行政部      | 2019-01-11 16:23:00 |
    +----+----------+------------+---------------------+
    3 rows in set (0.00 sec)
    
  • 相关阅读:
    Codeforces Round #687 A. Prison Break
    最小生成树自用笔记(Kruskal算法+prim算法)
    Codeforces Round #686 (Div. 3)(A->D)(模拟,vector,数学)
    Acwing 852. spfa判断负环
    Linux内核分析_课程学习总结报告
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解系统调用
    基于mykernel 2.0编写一个操作系统内核
    何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?——参考试题
    TCP三次握手Linux源码解析
  • 原文地址:https://www.cnblogs.com/nulige/p/10327216.html
Copyright © 2020-2023  润新知