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