-
Notifications
You must be signed in to change notification settings - Fork 4
1.建表SQL语句生成不用语言所需实体
yesAnd edited this page Sep 6, 2023
·
1 revision
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;}
同样的,指定-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"` //创建时间
}