Skip to content

1.建表SQL语句生成不用语言所需实体

yesAnd edited this page Sep 6, 2023 · 1 revision

生成Java Bean实体

lwe fmt [可选参数] <建表语句的文件路径> 

例如当前目录下,有个user.sql建表语句,内容如下:

CREATE TABLE 'student_info' (
				  'id' int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号,学号',
				  'class_id' varchar(255) NOT NULL COMMENT '班级id',
				  'user_name' varchar(255) NOT NULL COMMENT '用户名',
				  'status' tinyint(1) NOT NULL COMMENT '状态',
				  'create_time' datetime NOT NULL COMMENT '创建时间',
				  PRIMARY KEY ('id') 
				) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息';

一个SQL文件中支持多个创建语句批量生成目标文件;

另外,实际使用中最好使用比如Navicat等工具导出的建表语句,识别率会更高。自己手写的可能由于语法或者拼写错误导致错误识别!

你可以使用以下命令来生成Java的实体Bean

lwe fmt -t=java -a=yesAnd user.sql

其中:

-a, --author string Comment for author information will be added to the generated file,可选参数,该参数用于指定生成文件的注释中作者的信息。
-t, --target string The type[java|json|go] of generate the sql (default "java"),该参数用于指定生成文件类型,目前支持[java|go|json],默认值是java,即生成Java Bean。

执行命令后会在lwe-generate-file目录下生成相应的文件StudentInfo.java,内容如下:

//省略部分字段仅做展示
import java.util.Date;
import javax.persistence.Id;
...

/**
 * @Description 学生信息
 * @Author  yesAnd
 * @Date  2023/04/17 10:28
 */
@Table ( name ="student_info" )
public class StudentInfo implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @Id 
    @Column(name = "id" )
    private Integer id;	//用户编号,学号

    public Integer getId() { return id;}
    
    public void setId(Integer id) {  this.id = id;}

生成Go 结构体

同样的,指定-t=go生成对应的结构体:

//StudentInfo 学生信息
type StudentInfo struct {
	Id         int       `gorm:"primary_key;" json:"id"` //用户编号,学号
	ClassId    string    `gorm:"" json:"classId"`        //班级id
	UserName   string    `gorm:"" json:"userName"`       //用户名
	Status     int64     `gorm:"" json:"status"`         //状态
	CreateTime time.Time `gorm:"" json:"createTime"`     //创建时间

}