SQL语句(新增)

       项目中的增删查改功能,都跟数据库连接着的,要不然你的增删查改的功能就算执行了,数据库中的数据依然不变。项目跟数据库连接着才能执行操作方法,操作方法还得依靠着SQL语句,SQL语句顾名思义:SQL为结构化查询语言,全称是:Structured Query Language,写给数据库的语句。首先说一下新增的SQL语句与整个执行操作方法。

       执行单表新增,新增报名点数据:报名点ID(SignUpID)、报名点名称(SignUpName)、报名点号码(SignUpNumber)、报名点地址(SignUpSite)、报名点状态(SignUpState)。新增这四个字段的数据,ID是数据库中自增的不需要手动新增,若是你没有在数据库中设置ID自增,那就在参数类型(parameterType=”com.gx.po.SignUp”)后面加上是否有新增主键(useGeneratedKeys=”true”)和主键(keyProperty=”主键ID,如:SignUpID”)两串代码。trim标签中的Prefix=”(“ suffix= ”)”与suffixOverrides=”,”为固定语句。若是字段不能为空就去掉if标签,加上if标签就是表示该字段可为空。不用if标签的字段在新增的时候不能为空,否则会报错,个人推荐全部都加上if标签,判断是否为空可以在JS代码那里判断。if标签里面的test的字段是对应着实体类名称,if标签包裹的字段对应着数据库名称千万别写错了。第二个trim也一样,if标签里面的test的字段对应着实体类名称,if标签包裹的字段就是对应着参数名称,放在(#{ })里面。 

<!-- 新增报名点 -->
<insert id="insertSignUp" parameterType="com.gx.po.SignUp">
    insert into signup
    <trim prefix="(" suffix= ")" suffixOverrides=",">
        <if test="signUpName!=null">SignUpName,</if>
        <if test="signUpNumber!=null">SignUpNumber,</if>
        <if test="signUpSite!=null">SignUpSite,</if>
        <if test="signUpState!=null">SignUpState,</if>
    </trim>
    <trim prefix="values(" suffix= ")" suffixOverrides=",">
        <if test="signUpName!=null">#{signUpName},</if>
        <if test="signUpNumber!=null">#{signUpNumber},</if>
        <if test="signUpSite!=null">#{signUpSite},</if>
        <if test="signUpState!=null">#{signUpState},</if>
    </trim>
</insert>

       SQL语句写完,接下来的是Dao层,参数是实体类。

int insertSignUp(SignUp signUp);// 新增报名点

       Dao层写完,接下来的是ServiceImpl,执行Dao方法,返回参数是实体类。

// 新增报名点
public int insertSignUp(SignUp signUp){
    return vehicleDao.insertSignUp(signUp);
}

       最后的Service层,虽然跟Dao层相似,但是Service层是给控制器调用的,参数是实体类。

int insertSignUp(SignUp signUp);// 新增报名点

       控制器的保存新增方法,参数是实体类,异常捕获内放输出,可以提示我们哪里的方法出错了,获取到Service层方法并执行,判断新增执行后是否成功,成功或者失败的返回值都会返回到html页面的方法。返回值可以返回中文、数字、英文。注意,新增后的提示框内容就是你返回值的内容。这个是比较简洁的,只是为了能执行SQL语句的代码,大家可以做更进一步的判断机制。

/**
* 新增保存
* @param signUp
* @return
* @throws UnsupportedEncodingException
*/
@RequestMapping("addSignUp")
@ResponseBody
public String addSignUp(SignUp signUp){
    try {
        // 执行新增
        int sup = vehicleService.insertSignUp(signUp);
        // 判断是否新增成功
        if (sup > 0){
            return "新增报名点成功";
        }
        else{
            return "新增失败";
        }
    }catch (Exception e){
        System.err.println("你好,新增报名点错误异常!");
        System.out.println(e.getStackTrace());
        return "报名点新增异常,请联系管理员!";
    }
}

       button保存的按钮,给个点击事件,让下面的保存的方法可获取到按钮。Button按钮是用bootstrap按钮。

<!-- 提交按钮 -->
<button type="button" class="btn btn-success" onclick="Preserve()">
    保存
</button>

       获取到保存按钮的点击事件,获取form表单的ID,serializeArray()方法通过序列化表单值来创建对象数组(名称和值),通过创建的对象数组来判断不可为空的内容框或选择框,第一个框从0开始,从左到右依次数。点击提交保存若是有判断的框为空就会有提示弹出。若是可以为空的框就不用给它做判断,省点代码。注意,多框就逐个判断,千万不要嵌套判断,不然会不利于后期的维护或者找错误!判断无误后进行post提交保存请求,post请求链接是控制器的保存新增的方法。判断控制器方法是否执行成功,就data==”控制器方法成功返回值”,就layer提示成功并刷新数据表格,刷新表格的链接是控制器查询数据的方法。简洁的刷新表格代码在下面。

// 新增保存
function Preserve(){
    //serializeArray()方法通过序列化表单值来创建对象数组(名称和值)
    let formid = $("#FormID").serializeArray();


    // 判断必填数据是否为空(报名点名称)
    if (formid[0].value=="" || formid[0].value==null){
        layer.msg("请填写报名点名称,不得为空!");
        return;
    }

    // 判断必填数据是否为空(报名点状态)
    if (formid[2].value=="" || formid[2].value==null){
        layer.msg("请选择报名点状态,不得为空!");
        return;
    }

    // post提交
    $.post("${pageContext.request.contextPath}/Vehicle/addSignUp", formid, function (data){
        // 新增成功提示
        layer.msg(data, {icon: 1});
        if (data == "新增报名点成功"){
            // 刷新表格
            tableIns.reload({url:"${pageContext.request.contextPath}/Vehicle/JumpTwoPage"});
        }
        // 关闭模态框
        $("#close").click();
    });
}

       若你已经写了模糊查询或者其他查询的操作,就可以直接调用模糊查询或其他查询的方法即可,若是你没写模糊查询或其他查询的方法,就用上面的刷新表格的方法。

// post提交
$.post("${pageContext.request.contextPath}/Vehicle/addSignUp", formid, function (data){
    // 新增成功提示
    layer.msg(data, {icon: 1});
    if (data == "新增报名点成功"){
        // 利用模糊查询的方法刷新表格
        Search();
    }
    // 关闭模态框
    $("#close").click();
});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值