[封装]实战gorm

gorm以面向对象的编码方式对数据库读写操作进行了封装,将每一个数据实体当作一个结构体(类)进行处理。本片文章从实际开发中所遇问题和新的需求,对gorm进行一次封装,以此加快开发速度。

首先介绍代码架构:

|-----------------------
|- component
|-- db.go
|-- model.go
|-- test.go
|- include
|-- container.go
|-- db.go
|- init
|-- init.go
|- model
|-- bean
|--- messageRegister.go
|-- messageRegister.go
|- test
|-- messageRegister.go
|- main.go
|-----------------------

a. 入口文件: main.go

package main

import _ "./init"
import "./test"

func main() {
    test.TMessageRegister()
}

b. 编写基础结构体和接口(component)

   (1)  数据库连接相关, db.go

package component

import "github.com/jinzhu/gorm"

type SwyModel struct {
    *gorm.DB    
    TableName string     
}

   (2)  数据实体相关, model.go 

package component

import (
    "encoding/json"

    "github.com/jinzhu/gorm"
)

type DpModel struct {
    gorm.Model
}

func translate(out interface{}, v interface{}) (interface{}, error) {
    var (
        err error
        ms = make([]byte, 0, 64)
    )
    ms, err = json.Marshal(v)
    if err != nil {
        return nil, err
    }
    err = json.Unmarshal(ms, out)
    if err != nil {
        return nil, err
    }
    return out, nil
}

func (s *DpModel) Translate(out int
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值