纯属个人学习,加深记忆使用。
Typescript 封装统一操作MySql Mssql的底层库
注意:约束统一的规范、以及代码的重用
解决方案:需要约束规范所以要定义接口,需要代码重用所以用到泛型
interface DBI<T> {
add(info: T): boolean;
update(info: T, id: number): boolean;
delete(id: number): boolean;
get(id: number): any[]
}
//定义一个操作MySQL数据库的类
class MysqlDb<T> implements DBI<T>{
add(info: T): boolean {
return true;
};
update(info: T, id: number): boolean {
return true;
};
delete(id: number): boolean {
return true;
};
get(id: number): any[] {
throw new Error("Method not implemented");
}
}
//定义一个操作mssql数据库的类
class MsSqlDb<T> implements DBI<T>{
add(info: T): boolean {
return true;
};
update(info: T, id: number): boolean {
return true;
};
delete(id: number): boolean {
return true;
};
get(id: number): any[] {
throw new Error("Method not implemented");
}
}
class User {
username: string | undefined;
password: string | undefined
}
let u = new User();
u.username = '张三';
u.password = '123'
var oMysql = new MysqlDb<User>();
oMysql.add(u);
let oMssql = new MsSqlDb<User>();
oMssql.add(u);