• 06、TypeScript 类型、接口、类、泛型 综合使用,封装一个操作数据库的库


    1.封装一个操作数据库的库

    /*
      功能:定义一个操作数据库的库 支持 Mysql、Mssql、MongoDb
      要求:Mysql、MsSql、MongoDb 功能一样 ,都有 add、update、get 方法
      注意:约束统一的规范、以及代码重用
      解决方案:需要约束规范所以要定义接口,需要代码重用所以用到泛型
        1.接口:在面向对象编程中,接口是一种规范的定义,它定义了行为和动作的规范
        2.泛型:就是解决 类、接口、方法 的复用性
    */
    interface DBI<T> {
      add(info: T): boolean;
    
      delete(id: number): boolean;
    
      get(id: number): any[];
    
      update(info: T, id: number): boolean;
    }
    
    // 定义一个操作 mysql 数据库的类
    // 注意:要实现泛型接口 这个类也应该是一个泛型类
    class MySqlDb<T> implements DBI<T> {
      constructor() {
        console.log('数据库建立连接');
      }
    
      add(info: T): boolean {
        console.log(info);// 这里可以获取添加的数据
        return true;
      }
    
      delete(id: number): boolean {
        return true;
      }
    
      get(id: number): any[] {
        return [];
      }
    
      update(info: T, id: number): boolean {
        return true;
      }
    }
    
    // 定义一个操作 mssql 数据库的类
    class MsSqlDb<T> implements DBI<T> {
      add(info: T): boolean {
        return true;
      }
    
      delete(id: number): boolean {
        return true;
      }
    
      get(id: number): any[] {
        return [];
      }
    
      update(info: T, id: number): boolean {
        return true;
      }
    }
    
    // 操作用户表  定义一个 User 类和数据表做映射
    class User {
      username: string | undefined;
      password: string | undefined;
    }
    
    var u = new User();
    u.username = 'zhangning';
    u.password = '123456';
    
    // 给 mysql 数据库增加数据
    var omysql = new MySqlDb<User>();// 类作为参数来约束数据传入的类型
    omysql.add(u);
    
    // 给 mssql 数据库增加数据,想操作哪个库,换哪个类就可以了
    var omssql = new MsSqlDb<User>();// 类作为参数来约束数据传入的类型
    omssql.add(u);
  • 相关阅读:
    三元判断大小奇偶
    键盘输入 循环 for if-else while 等循环
    三元 导包
    进制
    符号等
    第二模块 4.1 模块的种类和介绍
    第二模块 练习题
    第二模块 3.15 迭代器
    第二模块 3.14 通过生成器实现并发编程
    第二模块 3.13 生成器
  • 原文地址:https://www.cnblogs.com/zhangning187/p/zhyyfzzn210412187.html
Copyright © 2020-2023  润新知