在请求后台之前,我们还要加个entity的生成模板,因为tb_goods 的一个字段describe为mysql的关键字,所以执行sql语句的时候要加上`,否则会报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near describe at line 1
正确的sql应该是这样,每个字段都加上``,如`describe`。
看了官网的文档并没有加`号的功能,所以自定义一个模板en
模板代码:
package ${}; #foreach($pkg in ${}) import ${pkg}; #end #if(${swagger2}) import io.; import io.Property; #end #if(${entityLombokModel}) import lombok.Data; import lombok.EqualsAndHashCode; #if(${chainModel}) import lombok.ex; #end #end /** * <p> * $!{} * </p> * * @author ${author} * @since ${date} */ #if(${entityLombokModel}) @Data #if(${superEntityClass}) @EqualsAndHashCode(callSuper = true) #else @EqualsAndHashCode(callSuper = false) #end #if(${chainModel}) @Accessors(chain = true) #end #end #if(${}) @TableName("${}") #end #if(${swagger2}) @ApiModel(value="${entity}对象", description="$!{}") #end #if(${superEntityClass}) public class ${entity} extends ${superEntityClass}#if(${activeRecord})<${entity}>#end { #elseif(${activeRecord}) public class ${entity} extends Model<${entity}> { #else public class ${entity} implements Serializable { #end #if(${entitySerialVersionUID}) private static final long serialVersionUID=1L; #end ## ---------- BEGIN 字段循环遍历 ---------- #foreach($field in ${}) #if(${}) #set($keyPropertyName=${}) #end #if("$!; != "") #if(${swagger2}) @ApiModelProperty(value = "${}") #else /** * ${} */ #end #end #if(${}) ## 主键 #if(${}) @TableId(value = "${}", type = IdTy) #elseif(!$null.isNull(${idType}) && "$!idType" != "") @TableId(value = "${}", type = IdType.${idType}) #elseif(${}) @TableId("${}") #end ## 普通字段 #elseif(${}) ## ----- 存在字段填充设置 ----- #if(${}) @TableField(value = "`${}`", fill = FieldFill.${}) #else @TableField(fill = FieldFill.${}) #end #elseif(${}) @TableField("`${}`") #end ## 乐观锁注解 #if(${versionFieldName}==${}) @Version #end ## 逻辑删除注解 #if(${logicDeleteFieldName}==${}) @TableLogic #end private ${} ${}; #end ## ---------- END 字段循环遍历 ---------- #if(!${entityLombokModel}) #foreach($field in ${}) #if(${.equals("boolean")}) #set($getprefix="is") #else #set($getprefix="get") #end public ${} ${getprefix}${}() { return ${}; } #if(${chainModel}) public ${entity} set${}(${} ${}) { #else public void set${}(${} ${}) { #end this.${} = ${}; #if(${chainModel}) return this; #end } #end ## --foreach end--- #end ## --end of #if(!${entityLombokModel})-- #if(${entityColumnConstant}) #foreach($field in ${}) public static final String ${.toUpperCase()} = "${}"; #end #end #if(${activeRecord}) @Override protected Serializable pkVal() { #if(${keyPropertyName}) return this.${keyPropertyName}; #else return null; #end } #end #if(!${entityLombokModel}) @Override public String toString() { return "${entity}{" + #foreach($field in ${}) #if($!{}==0) "${}=" + ${} + #else ", ${}=" + ${} + #end #end "}"; } #end }
再在生成代码的设置中加上两行代码:
//引入自定义模板 ("template;); //生成 @TableField注解 (true);
下面是js代码:
表单提交代码:
function formDemo() { let sendData={ name:'商品名1', price:10, } $.ajax({ url: "http://localhost:8080/admin/goods/save", type: "post", contentType: "application/json; charset=utf-8", data: JSON.stringify(sendData), dataType: "json", success: function (data) { con("formDemo",data); }, }); }
如果是一般的post提交,根本不需要JSON.stringify序列化,但是我们后台的保存方法需要传的是一个entity对象。
得到打印结果:
获取代码:
function getPageList() { let sendData={ pageNum:1, pageSize:10, } $.ajax({ url: "http://localhost:8080/admin/goods/list", type: "get", data: sendData, dataType: "json", success: function (data) { con("list",data); }, }); }
获取到的打印结果: