Golang + TiDB + GORM/XORM 的数据库驱动测试

承诺一时的华丽 · · 1127 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1、TiDB - 安装数据

[zls@archlinux tidb-docker-compose]$ mysql -h 127.0.0.1 -P 4000 -u root 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 52
Server version: 5.7.10-TiDB-v3.0.0-beta-148-ge767c5b5b MySQL Community Server (Apache License 2.0)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

2、TiDB - 创建数据库

> create database test;

3、TiDB - DEMO

package main

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/go-xorm/xorm"
    "testing"
    "github.com/hb-go/gorm"
)

func TestXorm2TiDB(t *testing.T) {
    db, err := xorm.NewEngine("mysql", "root:@tcp(172.18.0.1:4000)/test")
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    tabs, err := db.DBMetas()
    for _, v := range tabs {
        t.Log(v.Name)
    }

    var rows []map[string]string
    if rows, err = db.QueryString("select * from test"); err != nil {
        t.Error(err)
        return
    }
    for k, v := range rows {
        t.Log(k, v)
    }

    defer db.Close()
}

func TestGorm2TiDB(t *testing.T) {
    db, err := gorm.Open("mysql", "root:@tcp(172.18.0.1:4000)/test")
    if err != nil {
        fmt.Println(err.Error())
        return
    }

    rows, err := db.Raw("select * from test").Rows()
    if err != nil {
        t.Log(err)
    }
    defer rows.Close()
    for rows.Next() {
        var id int
        var name string
        rows.Scan(&id, &name)
        t.Log(id, name)
    }
    defer db.Close()
} 

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:承诺一时的华丽

查看原文:Golang + TiDB + GORM/XORM 的数据库驱动测试

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1127 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传