• 7、TypeScript类型、接口、类、泛型综合使用 -- TypeScript封装统一操作Mysql Mongodb Mssql的底层类库。


    功能:定义一个操作数据库的库,支持Mysql Mssql Mongodb
    要求:Mysql Mssql Mongodb功能一样 都有add、update、delete、get方法
    注意:约束统一的规范、以及代码重用
    解决方案:需要约束规范要定义接口,需要代码重用所以要用到泛型
      1、接口:在面向对象的编程中,接口是一种规范的定义,他定义了行为和动作的规范。
      2、泛型:解决类、接口、方法的复用性。
    interface DBI<T>{
      add(info:T):boolean;
      update(info:T,id:number):boolean;
      delete(id:number):boolean;
      get(id:number):any[];
    }
    
    // 定义一个操作mysql数据库类    注意:要实现泛型接口 这个类应该是一个泛型类。
    class MysqlDbs<T> implements DBI<T>{
      constructor(){
        console.log('建立连接成功');
      }
      add(info: T): boolean {
        console.log(info);
        return true;
      }
      update(info: T, id: number): boolean {
        throw new Error("Method not implemented.");
      }
      delete(id: number): boolean {
        throw new Error("Method not implemented.");
      }
      get(id: number): any[] {
        throw new Error("Method not implemented.");
      }
    }
    
    // 定义一个操作mssql数据库的类
    class MssqlDBs<T> implements DBI<T>{
      constructor(){
        console.log('建立连接成功');
      }
      add(info: T): boolean {
        throw new Error("Method not implemented.");
      }
      update(info: T, id: number): boolean {
        throw new Error("Method not implemented.");
      }
      delete(id: number): boolean {
        throw new Error("Method not implemented.");
      }
      get(id: number): any[] {
        var list = [
          {
            title:'垃圾箱',
            desc:'华展智能垃圾箱'
          },
          {
            title:'候车厅',
            desc:'华展智能候车厅'
          }
        ]
        return list;
      }
    }
    
    // 操作用户表 定义一个user类和数据表做映射
    class User{
      username:string | undefined;
      password:string | undefined;
    }
    var u = new User();
    u.username = 'root';
    u.password = '123456';
    var oMysql = new MysqlDbs<User>();//类作为参数来约束数据传入的类型
    oMysql.add(u);
    
    var oMssql = new MssqlDBs<User>();
    var data = oMssql.get(4);
    console.log(data);
  • 相关阅读:
    HTML
    JavaScript事件对象
    JavaScript 事件入门
    如何向github上传文件
    crystal
    BUUCTF[强网杯 2019]随便注wp
    BUUCTF[CISCN2019 华东南赛区]Web4 wp
    BUUCTF[NPUCTF2020]ezinclude wp
    Windows下Ant的环境配置
    Java解惑(1)——表达式之谜
  • 原文地址:https://www.cnblogs.com/wenshaochang123/p/13522580.html
Copyright © 2020-2023  润新知