TypeScript--类,泛型,接口综合案例:统一封装操作MySql底层类库

统一封装操作MySql底层类库

/*
功能:定义一个操作数据库的库  支持 Mysql Mssql  MongoDb
要求1: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数据库的类:

// 定义一个操作mysql数据库的类
// 注意:要实现泛型接口 这个类也应该是一个泛型类
class MysqlDb<T> implements DBI<T> {
    
    
  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[] {
    
    
    throw new Error("Method not implemented.");
  }
}

User类:和数据表做映射

class User {
    
    
  username: string | undefined;
  password: string | undefined;
}

添加数据操作:

// 定义数据
var u = new User();
u.username = "张三111";
u.password = "123456";
// 添加数据
var oMysql = new MysqlDb<User>(); //类作为参数来约束数据传入的类型
oMysql.add(u);

猜你喜欢

转载自blog.csdn.net/I_r_o_n_M_a_n/article/details/114767723