文档章节

xorm

Upcyan
 Upcyan
发布于 2017/07/01 09:16
字数 338
阅读 35
收藏 0
package main

import (
	_ "github.com/go-sql-driver/mysql"
	"github.com/go-xorm/xorm"
	"fmt"
	"strconv"
	"time"
)

/*
 * 操作数据库 使用 XORM
*/

var xdb *xorm.Engine

func init() {
	var err error

	if xdb, err = xorm.NewEngine("mysql", "root:123456@/mydb?charset=utf8"); err != nil {
		panic("MYSQL: " + err.Error())
	}
	//if xdb, err = xorm.NewEngine("postgres",
	//	"host=127.0.0.1 user=root dbname=mydb sslmode=disable password=mypassword"); err != nil {
	//	panic("PGSQL: " + err.Error())}

	// 数据表同步
	err = xdb.Sync2(&Mark{})
	if err != nil {
		panic("数据库错误: " + err.Error())
	}
}

func main() {
	fmt.Println("================================\n")
	start := time.Now()
	var m Mark

	//m.AddMark()         // 添加新的标签
	//m.DelMark(3)        // 删除标签
	//m.PutMark(4, "我爱你") // 修改标签
	//m.GetMark(4)        // 获取标签
	//m.FindMark("签")     // 查找标签
	m.GetMarkAll()      // 获取所有标签

	fmt.Println("\n耗时: ", time.Now().Sub(start))
}

type Mark struct {
	Id   int64
	Name string
}

// 获取所有标签
func (Mark) GetMarkAll() {
	m := make([]Mark, 0)
	// 指定字段名逆序排序(正序 Asc)
	if err := xdb.Desc("Id").Find(&m); err != nil {
		panic(err)
	}
	fmt.Println(m)
}

// 添加新的标签
func (Mark) AddMark() {
	for i := 1; i <= 100000; i++ {
		m := &Mark{}
		m.Name = "标签" + strconv.Itoa(i)
		if _, err := xdb.InsertOne(m); err != nil {
			panic(err)
		}
	}
}

// 删除标签
func (Mark) DelMark(id int64) {
	m := &Mark{}
	if _, err := xdb.Id(id).Delete(m); err != nil {
		panic(err)
	}
}

// 修改标签
func (Mark) PutMark(id int64, putname string) {
	m := &Mark{}
	m.Name = putname
	if _, err := xdb.Id(id).Update(m); err != nil {
		panic(err)
	}
}

// 获取一个标签
func (Mark) GetMark(id int64) {
	m := &Mark{}
	if _, err := xdb.Id(id).Get(m); err != nil {
		panic(err)
	}
	fmt.Println(m, "\n")
}

// 查找标签
func (Mark) FindMark(s string) {
	m := make([]Mark, 0)
	// 查询包含 ”标签“ 的字段
	// 使用原生 SQL 语句 模糊查询
	if err := xdb.SQL(`SELECT Name FROM mark WHERE Name like "%` + s + `%"`).Find(&m); err != nil {
		panic(err)
	}
	fmt.Println(m, "\n")
}

© 著作权归作者所有

Upcyan
粉丝 0
博文 27
码字总数 12134
作品 0
合肥
私信 提问
xorm速记卡 Quick Reference

xorm is a very famous golang lib, for operating relation database. Install Documentation godoc-xorm gowalker-xorm Quickstart Get started Import packages Define models Create dat......

go-skyblue
2014/03/10
2.6K
0
使用xorm工具,根据数据库自动生成 go 代码

使用xorm工具,根据数据库自动生成 go 代码 引入 使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型。因为 golang 的使用首字母控制可见范围,我们经...

万建宁
2018/12/04
340
0
xorm操作PostgreSQL数据库(增删改查实例)

一、xorm介绍 xorm是一个简单而强大的Go语言ORM库.通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单...

mickelfeng
2018/11/27
207
0
xorm v0.1.7 发布,Go语言ORM框架

xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 本次版本发布有如下更新: 1.新增IConnectPool接口以及NoneConnectPool, SysConnectPool, SimpleConnectPool三种实现...

lunny
2013/07/03
1K
23
go-xorm支持外键吗

@lunny 你好,想跟你请教个问题:百度也没有找到答案,请问一下go-xorm支持外键吗?比如在结构体中引用结构体,查询外层结构体之后,内部包含的结构体也被赋值,go-xorm目前支持这个吗?谢谢...

pchenghao
2015/07/27
734
1

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
7
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
7
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部