Git Product home page Git Product logo

sqlgen's Introduction

sqlgen

一个go语言小工具,可以利用lex和ast, 把建表语句转换成go struct,

tutorial

执行命名即可生成

go run cmd/sqlgen.go --in database/test.sql --out models/shop_order.go --pkg models

本项目内置了一个简单的orm,可以根据实际需要更改。

因为orm用到了generic,所以go version >=1.8, 如果不需要这个orm,则可以降低go版本

usage

参数说明

  • --in sql语句保存文件
  • --out 输出文件,如果不传,咋保存到os.stdout
  • --pkg 输出文件的package名称

v4版本

默认版本用的是tidb的parser,包含依赖较多,并不是很满意,所以开发了基于yacc的版本,但是v3只是初级版,ast的抽象程序较低,代码质量也不高,但是为了方便其他人学习,还是保留了下来。

v5版本

v5是一个完整的版本,采用goyacc解析sql语句生成ast,然后根据ast用go自带的编译器生成go代码

生成parse文件go run golang.org/x/tools/cmd/goyacc -l -o v5/out.go v5/lexer.y

如果本地没有安装tools,记得先安装go get -u golang.org/x/tools

生成go文件go run cmd/v5.go --in database/test.sql --out models/shop_order.go --pkg models

sqlgen's People

Contributors

tiyee avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.