model-gen

Go 专用的模型生成器
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 代码生成工具
软件类型 开源软件
地区 国产
投 递 者 司宏伯
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

model-gen 是一个Go 专用的模型生成器。

原理

通过获取 mysql 表结构,进行 model 文件生成。

迭代

目前支持 mysql,未来预计支持 mariadb 和 pgsql (sql server 还未考量)

快速入门

代码:

	    mysqlHost := "127.0.0.1"
    	mysqlPort := "3306"
    	mysqlUser := "root"
    	mysqlPassword := "sa"
    	mysqlDbname := "blog"
    
    	dsn := mysqlUser + ":" + mysqlPassword + "@tcp(" + mysqlHost + ":" + mysqlPort + ")/" + mysqlDbname + "?charset=utf8mb4"
    
    	Mysql := GetMysqlToGo()
    	Mysql.Driver.SetDsn(dsn)
    	Mysql.SetModelPath("/tmp")
    	Mysql.SetIgnoreTables("cate")
    	Mysql.SetPackageName("models")
    	Mysql.Run()

执行结果:

ll /tmp
total *
-rw-r--r--  1 limars  wheel  297 12 18 17:59 cate.go
-rw-r--r--  1 limars  wheel  597 12 18 17:59 comment.go
-rw-r--r--  1 limars  wheel  826 12 18 17:59 content.go
......
cat cate.go
package models

type Cate struct {
	Id         int    `orm:"id" json:"id"`
	Name       string `orm:"name" json:"name"`
	CreateTime string `orm:"create_time" json:"create_time"`
	UpdateTime string `orm:"update_time" json:"update_time"`
}

func (cate *Cate) GetTableName() string {
	return "cate"
}

附带上sql:

CREATE DATABASE `blog`;

USE `blog`;

CREATE TABLE `cate` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



CREATE TABLE `comment` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `blog_id` int(11) unsigned NOT NULL,
  `parent_id` int(11) unsigned NOT NULL DEFAULT '0',
  `ip` varchar(32) NOT NULL DEFAULT '',
  `email` varchar(255) NOT NULL DEFAULT '',
  `name` varchar(50) NOT NULL DEFAULT '',
  `content` tinytext NOT NULL,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` tinyint(1) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


CREATE TABLE `content` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `cate_id` int(11) unsigned NOT NULL COMMENT '分类id',
  `title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题',
  `description` tinytext NOT NULL COMMENT '简介',
  `content` text NOT NULL COMMENT '正文',
  `keyword` varchar(255) NOT NULL DEFAULT '' COMMENT 'seo关键字',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `is_original` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 原创  2 转载',
  `ext` text NOT NULL COMMENT '扩展字段',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

  • mvn appfuse:gen-model是appfuse maven plugin(简称AMP,大家记住这个简称)中的 一个命令,用以从数据库反向工程生成pojo。我们可以在eclipse环境中配置这个插 件,具体配置方法类似于配置mvn jetty:run,在此不再赘述。配置好了这个插件之 后,我们还有如下几步要做才能保证该插件能正确运行: 1. 修改pom.xml中<artifactId>

  • sequelize-gen说明 sequelize-gen工具可以根据数据库中的表来生成对应的model,很大程度上方便了程序员去手动创建model。 此命令示例如下: sequelize-gen -h host -p 'port' -d 'db_name' -u user -x password -e'mysql' -o ./models -t 'table_name' 命令行参数说明 -h

  • https://gorm.io/gen/ github 1、GEN Guides GEN:友好和更安全的代码生成 1.1 概述 来自动态原始SQL的惯用和可重用API 100%类型安全的DAO API,不使用 interface{} Database To Struct遵循GORM约定 底层的GORM,支持GORM支持的所有功能,插件,DBMS 1.2 安装 go get -u gorm.io/g

  • 目前并没有办法处理文件上传成功之后的回调 在parser.vue文件里面: 1、在data里对上传文件进行拦截 data() { const data = { formConfCopy: deepClone(this.formConf), [this.formConf.formModel]: {}, [this.formConf.formRules]:

 相关资料
  • 生成数据库中所有表的模型文件,如果设置了include或exclude,则按照相应规则过滤表。 必选参数: -namespace 生成的Model所在命名空间 可选参数: -database 数据库名,不传则取连接池默认配置的库名 -baseClass 生成时所继承的基类(自行实现务必继承框架的模型类),默认Imi\Model\Model,可选 -poolName 连接池名称,不传则取默认连接池

  • 数据检索/查找器 Finder 方法旨在从数据库查询数据. 他们 不 返回简单的对象,而是返回模型实例. 因为 finder 方法返回模型实例,你可以按照 实例 的文档中所述,为结果调用任何模型实例成员. 在本文中,我们将探讨 finder 方法可以做什么: find - 搜索数据库中的一个特定元素 // 搜索已知的ids Project.findByPk(123).then(project =>

  • 将Android Studio升级到4.0版本后,在“gradle-wrapper.properties”中:

  • 监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入X预测相应的输出Y。这个模型的一般形式为决策函数Y=f(X)或者条件概率分布P(Y|X)。 ** 决策函数Y=f(X):**你输入一个X,它就输出一个Y,这个Y与一个阈值比较,根据比较结果判定X属于哪个类别。例如两类(w1和w2)分类问题,如果Y大于阈值,X就属于类w1,如果小于阈值就属于类w2。这样就得到了该X对应的

  • 树模型准备JSON文档的内存树表示。 它构建了一个JsonObject节点树。 它是一种灵活的方法,类似于XML的DOM解析器。 从JSON创建树 在读取JSON之后,JsonParser提供指向树的根节点的指针。 根节点可用于遍历完整的树。 请考虑以下代码段以获取提供的JSON字符串的根节点。 //Create an JsonParser instance JsonParser parser

  • 树模型准备JSON文档的内存树表示。 ObjectMapper构建JsonNode节点的树。 这是最灵活的方法。 它类似于XML的DOM解析器。 从JSON创建树 ObjectMapper在读取JSON后提供指向树的根节点的指针。 根节点可用于遍历完整的树。 请考虑以下代码段以获取提供的JSON字符串的根节点。 //Create an ObjectMapper instance ObjectMap

  • 本文向大家介绍生成模型和判别模型的区别相关面试题,主要包含被问及生成模型和判别模型的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 生成模型是先从数据中学习联合概率分布,然后利用贝叶斯公式求得特征和标签对应的条件概率分布。判别模型直接学习条件概率分布,直观的输入什么特征就预测可能的类别。

  • 本文向大家介绍生成式模型、判别式模型相关面试题,主要包含被问及生成式模型、判别式模型时的应答技巧和注意事项,需要的朋友参考一下 https://github.com/imhuay/Algorithm_Interview_Notes-Chinese/blob/master/A-机器学习/A-机器学习基础.md#生成模型与判别模型 生成式模型(generative model)会对x和y的联合分布p(