程序员的知识教程库

网站首页 > 教程分享 正文

26.零基础开发商城项目:ajax获取和提交数据

henian88 2024-08-17 16:03:49 教程分享 74 ℃ 0 评论

在请求后台之前,我们还要加个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`。

看了官网的文档并没有加`号的功能,所以自定义一个模板entity.java.vm

模板代码:

package ${package.Entity};

#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
#if(${swagger2})
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
#end
#if(${entityLombokModel})
import lombok.Data;
import lombok.EqualsAndHashCode;
    #if(${chainModel})
    import lombok.experimental.Accessors;
    #end
#end

/**
 * <p>
 * $!{table.comment}
 * </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(${table.convert})
@TableName("${table.name}")
#end
#if(${swagger2})
@ApiModel(value="${entity}对象", description="$!{table.comment}")
#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 ${table.fields})

    #if(${field.keyFlag})
        #set($keyPropertyName=${field.propertyName})
    #end
    #if("$!field.comment" != "")
        #if(${swagger2})
        @ApiModelProperty(value = "${field.comment}")
        #else
        /**
         * ${field.comment}
         */
        #end
    #end
    #if(${field.keyFlag})
    ## 主键
        #if(${field.keyIdentityFlag})
        @TableId(value = "${field.annotationColumnName}", type = IdType.AUTO)
        #elseif(!$null.isNull(${idType}) && "$!idType" != "")
        @TableId(value = "${field.annotationColumnName}", type = IdType.${idType})
        #elseif(${field.convert})
        @TableId("${field.annotationColumnName}")
        #end
    ## 普通字段
    #elseif(${field.fill})
    ## -----   存在字段填充设置   -----
        #if(${field.convert})
        @TableField(value = "`${field.annotationColumnName}`", fill = FieldFill.${field.fill})
        #else
        @TableField(fill = FieldFill.${field.fill})
        #end
    #elseif(${field.convert})
    @TableField("`${field.annotationColumnName}`")
    #end
## 乐观锁注解
    #if(${versionFieldName}==${field.name})
    @Version
    #end
## 逻辑删除注解
    #if(${logicDeleteFieldName}==${field.name})
    @TableLogic
    #end
private ${field.propertyType} ${field.propertyName};
#end
## ----------  END 字段循环遍历  ----------

#if(!${entityLombokModel})
    #foreach($field in ${table.fields})
        #if(${field.propertyType.equals("boolean")})
            #set($getprefix="is")
        #else
            #set($getprefix="get")
        #end

    public ${field.propertyType} ${getprefix}${field.capitalName}() {
            return ${field.propertyName};
            }

        #if(${chainModel})
        public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
        #else
        public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
        #end
            this.${field.propertyName} = ${field.propertyName};
        #if(${chainModel})
                return this;
        #end
            }
    #end
## --foreach end---
#end
## --end of #if(!${entityLombokModel})--

#if(${entityColumnConstant})
    #foreach($field in ${table.fields})
    public static final String ${field.name.toUpperCase()} = "${field.name}";

    #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 ${table.fields})
        #if($!{foreach.index}==0)
                "${field.propertyName}=" + ${field.propertyName} +
        #else
                ", ${field.propertyName}=" + ${field.propertyName} +
        #end
    #end
        "}";
        }
#end
        }

再在生成代码的设置中加上两行代码:

//引入自定义模板   
templateConfig.setEntity("templates/entity.java");
//生成  @TableField注解
 strategy.setEntityTableFieldAnnotationEnable(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) {
                   console.log("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) {
                console.log("list",data);

            },
        });
    }

获取到的打印结果:


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表