ssm项目实现删除操作后如何使查询出来的数据页面自动刷新?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssm项目实现删除操作后如何使查询出来的数据页面自动刷新?相关的知识,希望对你有一定的参考价值。

后台传给前端一个删除成功的标识

前端页面刷新 重新请求就行了 反正每次你进入页面都是一个查询数据的请求 删除之后刷新页面 自然就会重新请求后台的查询数据
参考技术A 使用Ajax,调用javascript重新加载页面或者移除相应的DOM 参考技术B 楼上说得对 参考技术C 点击删除后除了执行删除操作,紧跟着执行查询操作不就可以了。

SSM开发 | 开发自定义插件,使 mybatis-generator 支持软删除

1.提要

  本文是 小小商城-SSM版的 细节详解系列 之一,项目 github:https://github.com/xenv/S-mall-ssm 本文代码大部分在 github 中 可以找到。

  我们在开发的过程中,往往会使用到软删除,即删除时不真正删除还是打标记,但是这样在查询的时候往往会遇到一些麻烦,特别是使用 mybatis-generator 的时候,因为不好自定义生成的 mapper ,这样在查询的时候很容易把已经打标的数据又查出来,非常不安全。

  那么,我们怎么让  mybatis-generator 生成的 mapper 支持软删除呢,还好,我们可以通过开发自定义插件实现。

2.具体实现

  完整实现代码见:DeleteAtPlugin.java

  1.新建插件类,继承PluginAdapter,重写validate(..)方法,让其直接 return true; 不进行参数校验

  2. 重写 sqlMapExampleWhereClauseElementGenerated(...)方法,这个是 生成selectByExample 部分的 mapper 代码的钩子,我们在合适的地方(我是debug找的),加入一个软删除标记 is null 即可

  3. 重写 sqlMapSelectByPrimaryKeyElementGenerated(...)方法,我们在合适的地方,加入一个软删除标记 is null 即可

  完整代码:

public class DeleteAtPlugin extends PluginAdapter {

    @Override
    public boolean sqlMapExampleWhereClauseElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {

        for (Element child : element.getElements()) {
            if (child instanceof XmlElement && ((XmlElement) child).getName().equals("where")) {
                TextElement element1 = new TextElement("and deleteAt is NULL");
                ((XmlElement) child).getElements().add(element1);
                break;
            }
        }
        return true;
    }

    @Override
    public boolean sqlMapSelectByPrimaryKeyElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
        TextElement element1 = new TextElement("and deleteAt is NULL");
        element.getElements().add(element1);
        return true;
    }

    @Override
    public boolean validate(List<String> list) {
        return true;
    }


}

  4.配置mybatis-generator插件

<generatorConfiguration>
    <context id="Mysql"  targetRuntime="MyBatis3" >
        <!--给select增加deleteAt is null属性-->
        <plugin type="tmall.util.MBGPlugins.DeleteAtPlugin">
        </plugin>
        ....
    </context>
    ...
</generatorConfiguration>

  5.在Service删除时候,调用 update方法而不是delete方法 ,使软删除标记不为空即可。 

 OK,大功告成

  

以上是关于ssm项目实现删除操作后如何使查询出来的数据页面自动刷新?的主要内容,如果未能解决你的问题,请参考以下文章

JAVAweb如何实现在一个查询好的页面实现更新以及删除操作,删除操作要求在此页面进行并删除后刷新页面

ASP.net如何实现数据的查询,删除,修改,编辑!

SSM开发 | 开发自定义插件,使 mybatis-generator 支持软删除

超级简单javaweb项目SSM用户管理登录注册查询添加删除修改操作.rar(含源码)

Java项目:仓库管理系统设计和实现(java+ssm+springboot+layui)

用JQuery实现ajax删除数据