From 635c44cba41555f75fe7a589c5133c2e9e360df5 Mon Sep 17 00:00:00 2001 From: caoshd Date: Sun, 31 Mar 2024 15:39:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=20PO=20=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/ColumnBuilder.java | 14 ++++--- .../caoshd/otone/builder/TableBuilder.java | 4 +- .../space/caoshd/otone/entity/ColumnInfo.java | 39 ++++++++++++------- src/test/resources/template/po.vm | 38 +++++++++++++++++- 4 files changed, 71 insertions(+), 24 deletions(-) diff --git a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java index 3eaa401..8621b55 100644 --- a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java @@ -48,12 +48,14 @@ public class ColumnBuilder { result.setComment(column.get(columnComment)); String columnName = CONFIG.getString(SqlConsts.LABEL_COLUMN_NAME); result.setColumnName(column.get(columnName)); - String propertyName = StrUtils.toCamelCase(result.getColumnName(), false); - result.setPropertyName(propertyName); - String sqlDataType = CONFIG.getString(SqlConsts.LABEL_DATA_TYPE); - result.setSqlDataType(column.get(sqlDataType)); - String javaDataType = TypeUtils.toJavaDataType(result.getSqlDataType()); - result.setJavaDataType(javaDataType); + String fieldName = StrUtils.toCamelCase(result.getColumnName(), false); + result.setFieldName(fieldName); + String fieldNameCap = StrUtils.toCamelCase(result.getColumnName(), true); + result.setFieldNameCap(fieldNameCap); + String dbType = CONFIG.getString(SqlConsts.LABEL_DATA_TYPE); + result.setDbType(column.get(dbType)); + String javaType = TypeUtils.toJavaDataType(result.getDbType()); + result.setJavaType(javaType); String extra = CONFIG.getString(SqlConsts.LABEL_EXTRA); result.setAutoIncrement(column.get(extra).contains(SqlConsts.VALUE_AUTO_INCREMENT)); diff --git a/src/main/java/space/caoshd/otone/builder/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index 607c92c..9bd0f06 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -98,10 +98,10 @@ public class TableBuilder { result.setColumns(columnInfo); result.setDateExists(columnInfo.stream() - .anyMatch(column -> TypeUtils.JAVA_TYPE_DATE.equals(column.getJavaDataType()))); + .anyMatch(column -> TypeUtils.JAVA_TYPE_DATE.equals(column.getJavaType()))); result.setDecimalExists(columnInfo.stream() - .anyMatch(column -> TypeUtils.JAVA_TYPE_DECIMAL.equals(column.getJavaDataType()))); + .anyMatch(column -> TypeUtils.JAVA_TYPE_DECIMAL.equals(column.getJavaType()))); List indexInfoList = IndexBuilder.loadIndexInfo( result.getTableSchema(), diff --git a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java index 692b174..d2721ce 100644 --- a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java +++ b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java @@ -3,9 +3,10 @@ package space.caoshd.otone.entity; public class ColumnInfo { private String columnName; - private String propertyName; - private String sqlDataType; - private String javaDataType; + private String fieldName; + private String fieldNameCap; + private String dbType; + private String javaType; private String comment; private Boolean autoIncrement; @@ -17,28 +18,36 @@ public class ColumnInfo { this.columnName = columnName; } - public String getPropertyName() { - return propertyName; + public String getFieldName() { + return fieldName; } - public void setPropertyName(String propertyName) { - this.propertyName = propertyName; + public void setFieldName(String fieldName) { + this.fieldName = fieldName; } - public String getSqlDataType() { - return sqlDataType; + public String getFieldNameCap() { + return fieldNameCap; } - public void setSqlDataType(String sqlDataType) { - this.sqlDataType = sqlDataType; + public void setFieldNameCap(String fieldNameCap) { + this.fieldNameCap = fieldNameCap; } - public String getJavaDataType() { - return javaDataType; + public String getDbType() { + return dbType; } - public void setJavaDataType(String javaDataType) { - this.javaDataType = javaDataType; + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public String getJavaType() { + return javaType; + } + + public void setJavaType(String javaType) { + this.javaType = javaType; } public String getComment() { diff --git a/src/test/resources/template/po.vm b/src/test/resources/template/po.vm index 343babd..90cabda 100644 --- a/src/test/resources/template/po.vm +++ b/src/test/resources/template/po.vm @@ -1,5 +1,13 @@ package ${cls.packageName}; +import java.io.Serializable; +#if(${tbl.decimalExists}) +import java.math.BigDecimal; +#end +#if(${tbl.dateExists}) +import java.util.Date; +#end + #define($authorComment) #if(${ext.author} && ${ext.author} != "") @@ -15,5 +23,33 @@ package ${cls.packageName}; * $!{tbl.comment}数据实体 * ${authorComment}${versionComment} */ -public class ${ClassName} { +public class ${ClassName} implements Serializable { + +#foreach($column in ${tbl.columns}) + /** + * ${column.comment} + */ + private ${column.javaType} ${column.fieldName}; + +#end +#foreach($column in ${tbl.columns}) + /** + * 获取${column.comment} + * + * @return ${column.comment} + */ + public ${column.javaType} get${column.fieldNameCap}() { + return ${column.fieldName}; + } + + /** + * 设置${column.comment} + * + * @param ${column.fieldName} ${column.comment} + */ + public void set${column.fieldNameCap}(${column.javaType} ${column.fieldName}) { + this.${column.fieldName} = ${column.fieldName}; + } + +#end } \ No newline at end of file