点击查看代码
import cn.hutool.core.util.StrUtil;
import lombok.Data;
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.List;
/**
* @author Administrator
*/
public class Text02 {
public static void main(String[] args) {
List<Class<User>> classList = Collections.singletonList(
User.class
);
classList.forEach(Text02::generateTableSql);
}
private static void generateTableSql(Class<User> obj) {
String tableName;
//获取类名User.class
tableName = obj.getName();
//User.class截取
tableName = tableName.substring(tableName.lastIndexOf(".")+1);
//驼峰式命名法
tableName = StrUtil.toUnderlineCase(tableName);
Field[] fields = obj.getDeclaredFields();
String column;
StringBuilder sb = new StringBuilder();
sb.append("drop table if exists ").append(tableName).append(";\r\n");
sb.append("\r\n");
sb.append("create table ").append(tableName).append("(\r\n");
/*System.out.println(tableName);*/
for (Field f : fields) {
column = f.getName();
Class<?> type = f.getType();
/*System.out.println(column + ","+type.getSimpleName());*/
String typeName = type.getTypeName();
sb.append(StrUtil.toUnderlineCase(column));
//这里只加了三种int date varchar 想要其他的自己加
if ("java.lang.Integer".equals(typeName)) {
sb.append(" int(11) ");
} else if ("java.util.Date".equals(typeName)) {
sb.append(" dateTime ");
} else {
sb.append(" varchar(255) ");
}
if ("id".equals(column)) {
sb.append(" not null AUTO_INCREMENT ");
}
sb.append(",");
sb.append("\n");
}
sb.append(" PRIMARY KEY (`id`)");
String sql = sb.toString();
sql = sb.substring(0,sql.length()) + "\n)" + "ENGINE = INNODB DEFAULT CHARSET = utf8mb4";
System.out.println(sql);
}
}
@Data
class User {
private Integer id;
private String name;
private String time;
private String remark;
}