SQL语句(新增)
增加字段的sql语句项⽬中的增删查改功能,都跟数据库连接着的,要不然你的增删查改的功能就算执⾏了,数据库中的数据依然不变。项⽬跟数据库连接着才能执⾏操作⽅法,操作⽅法还得依靠着SQL语句,SQL语句顾名思义:SQL为结构化查询语⾔,全称是:Structured Query Language,写给数据库的语句。⾸先说⼀下新增的SQL语句与整个执⾏操作⽅法。
执⾏单表新增,新增报名点数据:报名点ID(SignUpID)、报名点名称(SignUpName)、报名点号码(SignUpNumber)、报名点地址(SignUpSite)、报名点状态(SignUpState)。新增这四个字段的数据,ID是数据库中⾃增的不需要⼿动新增,若是你没有在数据库中设置ID⾃增,那就在参数类型(parameterType=”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="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.out.StackTrace());
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("${tPath}/Vehicle/addSignUp", formid, function (data){
// 新增成功提⽰
layer.msg(data, {icon: 1});
if (data == "新增报名点成功"){
// 刷新表格
}
// 关闭模态框
$("#close").click();
});
}
若你已经写了模糊查询或者其他查询的操作,就可以直接调⽤模糊查询或其他查询的⽅法即可,若是你没写模糊查询或其他查询的⽅法,就⽤上⾯的刷新表格的⽅法。
// post提交
$.post("${tPath}/Vehicle/addSignUp", formid, function (data){
// 新增成功提⽰
layer.msg(data, {icon: 1});
if (data == "新增报名点成功"){
// 利⽤模糊查询的⽅法刷新表格
Search();
}
// 关闭模态框
$("#close").click();
});
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论