package main

import (
"encoding/json"
"fmt"
"github.com/jinzhu/gorm"
"github.com/pborman/uuid"
"os"
"reflect"
"strings"

_ "github.com/mattn/go-sqlite3"
)

type User struct {
Id string `gorm:"primary_key;uuid"`
Age int64
Name string `sql:"size:255"`
UserPhone string `gorm:"column(user_phone); size(32)"`
UserQQ string `gorm:"column(user_qq); size(32);"`
UserCity string `gorm:"column(user_city); size(32)"`
}

// create UUID
func beforeCreate(scope *gorm.Scope) {
reflectValue := reflect.Indirect(reflect.ValueOf(scope.Value))
if strings.Contains(string(reflectValue.Type().Field(0).Tag), "uuid") {
uuid.SetClockSequence(-1)
scope.SetColumn("id", uuid.NewUUID().String())
}
}

func main() {
err := os.Remove("D:\\huawei-oj\\test\\work\\gwx.db")
if err != nil {
fmt.Println(err)
}
db, err := gorm.Open("sqlite3", "D:\\huawei-oj\\test\\work\\gwx.db")
if err != nil {
fmt.Println(err)
}
defer db.Close()

db.Callback().Create().Before("gorm:create").Register("my_plugin:before_create", beforeCreate)

db.AutoMigrate(&User{})

user := User{
Name: "jinzhu",
UserPhone: "11111",
UserQQ: "11111",
UserCity: "11111",
}

db.Create(&user)

var u User
db.First(&u)
js, err := json.MarshalIndent(u.Name, "", " ")
if err != nil {
fmt.Println(err)
}
fmt.Println(string(js))

}

最新文章

  1. centos终端中mysql中文显示乱码的处理
  2. AFN 2.6 code报错总结
  3. C、VDD、VSS、 VEE 和VPP的区别
  4. SpinLock 实现
  5. mvc中使用knockoutjs和ajax
  6. [java学习笔记]java语言核心----面向对象之this关键字
  7. MP算法和OMP算法及其思想
  8. ProgressDialog
  9. 构建自己的 PHP 框架
  10. Python:游戏:五子棋之人机对战
  11. Java辅助类持续汇总~
  12. 前端 - jquery方式 / iframe +form 方式 上传文件
  13. 原生js中用Ajax进行get传参
  14. docker部署路飞学城
  15. 中文全文检索讯搜xunsearch安装
  16. 让bat批处理后台运行,不显示cmd窗口(完全静化)
  17. resin中关于url rewrite来传递jsessionid的问题
  18. [SoapUI] 通过context获取response并解析里面的某个字段的值
  19. linux something
  20. 正则,re模块

热门文章

  1. C语言:多功能计算器程序说明书
  2. Homework7
  3. KingbaseES R6 手工创建主备流复制案例
  4. Docker_构建_运行总结
  5. 关于mciSendString函数调用mp3音频的问题
  6. Linux宝塔后台管理地址使用SSL,并部署非443端口的https
  7. 【原创】FFMPEG录屏入门指南
  8. Django 之模版层
  9. crictl 命令 - Kubernetes 管理命令详解
  10. Logstash:Email output plugin 检查日志中是否还有某些错误信息并发送邮件报警