栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

项目实训8——对数据库的表进行操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目实训8——对数据库的表进行操作

  上一篇博客讲到如何对表的字段进行操作,本篇将围绕使用JDBC对表的操作展开讨论。
  当管理员在用户数据库建立一张新表后,系统数据库会在DBid_charts表中插入一条新表的数据,包括表英文名、中文名和对表的描述,还会有一张新表DBid_Cid_meta表来存储该新表的字段信息。所以在删除用户数据库表的时候,还要注意同时删除系统数据库的DBid_charts表中关于被删除表的数据和DBid_Cid_meta表。
  删除用户数据库中的表要使用JDBC,连接用户数据库后执行sql语句drop table chartName同时删除表结构和数据。此方法设置删除成功就返回1。对系统数据库,即springboot项目通过application.properties文件进行连接的数据库,进行删表还是通过mapper文件操作数据库,其xml文件中的代码为:

    
    
        drop table if exists #{DBId}_#{CId}_meta
    

注意deleteSC的返回值为0!mybatis对删除操作的返回值由具体删除行数决定,drop操作直接删除表,就默认影响行数为0,所以返回为0,在对方法是否成功做出判断时要注意这一点。
  删除顺序非常重要!如果先删除DBid_charts表中的数据,则再进行之后操作时将无法获得表所在数据库的名字。因此要先删除用户数据库表,接着是字段表,最后才是DBid_charts表中的数据。controller文件中的删除方法代码如下:

    //删除表
    @RequestMapping("/deleteChart/{cid}/{bid}")
    public Map deleteChart(@PathVariable int cid,@PathVariable int bid) throws Exception {
        Map map = new HashMap<>();
        int sd = chartService.specificDelete(cid,bid);
        int msd = chartService.specificDChart(cid,bid);//返回值受涉及的行数影响
        int info = chartService.deleteChart(cid,bid);
        System.out.println("具体删除表:"+sd);
        System.out.println("具体删除表项表:"+msd);
        System.out.println("表所在数据库信息表的数据:"+info);
        if ((info > 0)&&(msd==0)&&(sd>0)) {
            map.put("state", true);
            map.put("msg", "删除成功!");
        } else {
            map.put("state", false);
            map.put("msg", "删除失败!");
        }
        return map;
    }

  修改表名时涉及用户数据库中的被修改表和系统数据库的DBid_charts表的该表数据项。用户数据库的表修改表名的操作比较简单,使用JDBC连接用户数据库后执行sql语句alter table chartName rename newName就可以了。对系统数据库中表的操作依旧通过mapper来实现,xml文件中相应的代码如下:

    
        update #{DBId}_charts set CEN=#{Chart.EN},CCN=#{Chart.CN},CDes=#{Chart.Des}
        where id=#{Chart.id};
    

controller文件中相应的代码如下:

    @PostMapping("/updateChart/{DBId}")
    public int updateChart(@RequestBody Chart nc,@PathVariable int DBId) throws Exception {
        int id=nc.getId();
        String nn=nc.getEN();
        int su = chartService.specificUpdate(id,DBId,nn);
        System.out.println("具体更改表名"+su);
        int i = chartService.updateChart(nc,DBId);

        return i;
    }

前端将更改过表数据以Chart对象的格式发回后端,表的新名就从Chart对象中获得。对表的其他信息进行的修改与用户数据库无关,只涉及系统数据库DBid_charts表的信息。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号