公告:九九网站目录为广大站长提供免费收录网站服务,会员可在线完成投稿无需添加友情链接。只收录内容正规合法的网站;快审网站软文10元

点击这里在线咨询客服
新站提交
  • 网站:8462
  • 待审:16
  • 小程序:9
  • 文章:3610
  • 会员:21113

 

一、数据库建表规范

首先设计数据库表格,思考班级表格中需要的字段,

班级表需要班级id、班级名称、创建者、是否删除、创建时间、更新者、更新时间字段信息。

学生表需要学生id、学生姓名、班级id、学生年龄、学生性别、学生电话、学生地址、是否删除以及创建者、创建时间、更新者、更新时间字段信息。

设计的数据表如下图所示,

classes班级信息表
stu学生信息表

Sql语句如下:

CLASSES

DROP TABLE "LEARN"."T_TEST_CLASSES";
CREATE TABLE "LEARN"."T_TEST_CLASSES" (
  "ID" VARCHAR2(255 BYTE) VISIBLE NOT NULL,
  "CNAME" VARCHAR2(255 BYTE) VISIBLE,
  "CRTUSER" VARCHAR2(255 BYTE) VISIBLE,
  "CRTDATE" DATE VISIBLE,
  "UPDUSER" VARCHAR2(255 BYTE) VISIBLE,
  "UPDDATE" DATE VISIBLE,
  "ISDELETE" VARCHAR2(255 BYTE) VISIBLE DEFAULT 0
)
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1
  MAXEXTENTS 2147483645
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;

-- ----------------------------
-- Primary Key structure for table T_TEST_CLASSES
-- ----------------------------
ALTER TABLE "LEARN"."T_TEST_CLASSES" ADD CONSTRAINT "SYS_C0011667" PRIMARY KEY ("ID");

-- ----------------------------
-- Checks structure for table T_TEST_CLASSES
-- ----------------------------
ALTER TABLE "LEARN"."T_TEST_CLASSES" ADD CONSTRAINT "SYS_C0011666" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
ALTER TABLE "LEARN"."T_TEST_CLASSES" ADD CONSTRAINT "SYS_C0014911" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;

-- ----------------------------
-- Triggers structure for table T_TEST_CLASSES
-- ----------------------------
CREATE TRIGGER "LEARN"."CLASSESTRIGER" BEFORE INSERT ON "LEARN"."T_TEST_CLASSES" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
begin

/*触发后执行的动作,在此是取得序列SEQ_BC_ES_IK_HOT_WORD的下一个值插入到表BC_ES_IK_HOT_WORD中的id字段中*/

select classesa.nextval into :new.id from dual;
 
end;
/

STU

DROP TABLE "LEARN"."T_TEST_STU";
CREATE TABLE "LEARN"."T_TEST_STU" (
  "ID" VARCHAR2(255 BYTE) VISIBLE NOT NULL,
  "SNAME" VARCHAR2(255 BYTE) VISIBLE,
  "CLASSID" VARCHAR2(255 BYTE) VISIBLE,
  "SAGE" VARCHAR2(255 BYTE) VISIBLE,
  "SSEX" VARCHAR2(255 BYTE) VISIBLE,
  "STEL" VARCHAR2(255 BYTE) VISIBLE,
  "SADDRESS" VARCHAR2(255 BYTE) VISIBLE,
  "CRTUSER" VARCHAR2(255 BYTE) VISIBLE,
  "CRTDATE" DATE VISIBLE,
  "UPDUSER" VARCHAR2(255 BYTE) VISIBLE,
  "UPDDATE" DATE VISIBLE,
  "ISDELETE" VARCHAR2(255 BYTE) VISIBLE DEFAULT 0
)
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1
  MAXEXTENTS 2147483645
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."ID" IS 学生id;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."SNAME" IS 学生姓名;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."CLASSID" IS 班级id;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."SAGE" IS 学生年龄;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."SSEX" IS 学生性别;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."STEL" IS 学生电话;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."SADDRESS" IS 学生地址;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."CRTUSER" IS 创建者;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."CRTDATE" IS 创建时间;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."UPDUSER" IS 更新者;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."UPDDATE" IS 更新时间;
COMMENT ON COLUMN "LEARN"."T_TEST_STU"."ISDELETE" IS 是否删除;

-- ----------------------------
-- Primary Key structure for table T_TEST_STU
-- ----------------------------
ALTER TABLE "LEARN"."T_TEST_STU" ADD CONSTRAINT "SYS_C0011665" PRIMARY KEY ("ID");

-- ----------------------------
-- Checks structure for table T_TEST_STU
-- ----------------------------
ALTER TABLE "LEARN"."T_TEST_STU" ADD CONSTRAINT "SYS_C0011664" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
ALTER TABLE "LEARN"."T_TEST_STU" ADD CONSTRAINT "SYS_C0014917" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;

-- ----------------------------
-- Triggers structure for table T_TEST_STU
-- ----------------------------
CREATE TRIGGER "LEARN"."STUTRIGER" BEFORE INSERT ON "LEARN"."T_TEST_STU" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
begin

/*触发后执行的动作,在此是取得序列SEQ_BC_ES_IK_HOT_WORD的下一个值插入到表BC_ES_IK_HOT_WORD中的id字段中*/

select stua.nextval into :new.id from dual;

end;
/
CREATE TRIGGER "LEARN"."STU_TRIGGER" BEFORE INSERT ON "LEARN"."T_TEST_STU" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
begin       

select stu_seq.nextval into :new.ID from dual;  

end ;
/
CREATE TRIGGER "LEARN"."TRG_STU_ID_SEQ" BEFORE INSERT ON "LEARN"."T_TEST_STU" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW WHEN (new.id is null) 
begin select T_TESE_STU.nextval into:new.id from dual;
end trg_user_id_seq ;
/
CREATE TRIGGER "LEARN"."T_TEST_STU_ID" BEFORE INSERT ON "LEARN"."T_TEST_STU" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
BEGIN
  NULL;
END;
/

-- ----------------------------
-- Foreign Keys structure for table T_TEST_STU
-- ----------------------------
ALTER TABLE "LEARN"."T_TEST_STU" ADD CONSTRAINT "CLASSID" FOREIGN KEY ("CLASSID") REFERENCES "LEARN"."T_TEST_CLASSES" ("ID") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;

二、执行代码生成后端操作

访问网址

**************************

查看代码生成模块,查看自己新建的数据库表格。

1.配置数据库表信息,生成代码的配置信息。

进行配置,设置一些基本信息。

2.执行预览或者下载操作。

得到安装包,把安装包解压,并将相应文件,放置到指定位置。

3.分析生成的逻辑代码,进行查看,理解。

持久层方法

// * 条件分页查询当前数据库中的数据
IPage query(Page page, @Param("dto") TTestClassesQueryDto dto);
//条件查询当前数据库中的所有数据
List query(@Param("dto") TTestClassesQueryDto dto);

业务层

NtPage query(TTestClassesQueryDto dto);

impl 调用分页,设置第几页以及每页内容,添加创建者。调用mapper的query方法、

public NtPage query(TTestClassesQueryDto dto) {
        Page page = new Page<>();
        page.setCurrent(dto.getCurrent());
        page.setSize(dto.getSize());
        page.addOrder(new OrderItem("CRTDATE", false));
        IPage list = super.baseMapper.query(page,dto);
        return NtPage.of(list, record -> dozerMapper.map(record, TTestClassesVo.class));
    }

Controller,调用servicen方法,返回数据集合

@Log("测试班级学生表接口:查询")
    @ResponseBody
    @ApiOperation(value = "测试班级学生表接口:查询", consumes = "application/json")
    @RequestMapping(value = "/query",method = {RequestMethod.POST })
    public ServerResponse> query(@Valid @RequestBody TTestClassesQueryDto dto){
        NtPage list = tTestClassesService.query(dto);
        return ServerResponse.ok(list);
    }

4.进行接口测试

在application.yml找到

api:secret:type:some

将type设置为none 这样可以获取token

(1)首先打开apipost,然后访问http://localhost:8888/adminLogin,获取token,将token设置变量,以便后期应用。

(2)测试班级信息。http://localhost:{{Port}}/tTestClasses/query 用post请求访问,将body设置为json字符串,返回200的响应,然后在json里面设置分页信息,也可以通过条件进行查询。也对修改删除等字段进行测试其他信息,查看返回值,以及修改是否成功。

{
 "current":"1",  
 // 第几页
 "size":"10",
 //  "id": 23

 // "cname": "高一1班"
 
}

(3)测试结束。功能正常。

三、执行前端页面的生成,应用以及测试。

1.将生成的前端代码,放在指定位置。

2.设置getRouter.js,路由访问路径的设置。

{
    path: /learn,
    component: Layout,
    redirect: /learn,
    name: learn,
    meta: { title: 学习模块, icon: doc },
    children: [
      {
        path: classes,
        name: classes,
        component: () => import(@/views/learn/classes/index.vue),
        meta: { title: 课程测试, icon: doc }
      },
      {
        path: stu,
        name: stu,
        component: () => import(@/views/learn/stu/index.vue),
        meta: { title: 学生测试, icon: doc }
      }
    ]
  },

3.启动前端页面,访问网址,进行登录查看,此时要将application.yml的api.secret.type:some,改为some

首先在菜单模块新增学习目录,然后在学习目录下面新增班级测试和学生测试菜单

菜单的路由地址设置为learn

班级测试的路由地址设置为classes,组件名称也是classes,组件路径设置i为@/views/learn/classes/index.vue

在班级测试下面新增 新增按钮,删除和修改按钮。权限标志设置为:TTestClasses:add、TTestClasses:del、TTestClasses:deledit

然后对模块进行测试,进行新增、修改、删除、以及条件查询,功能正常。

4.前端页面完成

四、添加一对多查询功能。

1.一个班级对应多个学生,首先在po类TTestClasses.java中添加,

@TableField(exist = false)private List tTestStus;vo类 TTestClassesVO中添加

private List tTestStus;

dto类TTestClassesQueryDto类中添加

/** 班级名称 */@ApiModelProperty(name="tTestStus",value = "班级名称")@TableField(exist = false)private List tTestStus;

2.对mapper添加方法,返回值是classesvo类的集合

List querySC5();

3.对应的sql设计,返回值集合设置为


        
        
        
        
        
        
        
        
        
    

    
        
        
        
        
    

对应的sql

4.业务层

List querySC5();

实现类

@Override
    public List querySC5() {
        List tTestClasses = super.baseMapper.querySC5();
        return tTestClasses;
    }

5.设计controller

@Log("测试班级学生表接口:查询详情")
    @ResponseBody
    @ApiOperation(value = "测试班级学生表接口:查询详情", consumes = "application/json")
    @RequestMapping(value = "/querySC5", method = {RequestMethod.POST })
    public ServerResponse> querySC5(){
        List list = tTestClassesService.querySC5();
        return ServerResponse.ok(list);
    }

6.进行接口测试

访问http://localhost:8888/tTestClasses/querySC5,查看返回值信息。

返回值正常,能够正常显示。

分享到:

  admin

注册时间:

网站:0 个   小程序:3 个  文章:0 篇

  • 462

    网站

  • 9

    小程序

  • 3610

    文章

  • 113

    会员

赶快注册账号,推广您的网站吧!
热门网站
最新入驻小程序

跳一跳2022-08-22

跳一跳是微信开发的一款小游戏,有

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康