/*

功能:定义一个操作数据库的库  支持 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数据库的类 注意:要实现泛型接口 这个类也应该是一个泛型类 class MysqlDb<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[] {
var list=[ {
title:'xxxx',
desc:'xxxxxxxxxx'
},
{
title:'xxxx',
desc:'xxxxxxxxxx'
}
] return list;
} } //定义一个操作mssql数据库的类 class MsSqlDb<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[] { var list=[ {
title:'xxxx',
desc:'xxxxxxxxxx'
},
{
title:'xxxx',
desc:'xxxxxxxxxx'
}
] return list;
} } //操作用户表 定义一个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); */ class User{
username:string | undefined;
password:string | undefined;
} var u=new User();
u.username='张三2222';
u.password='123456'; var oMssql=new MsSqlDb<User>();
oMssql.add(u); //获取User表 ID=4的数据
var data=oMssql.get(4);
console.log(data);

最新文章

  1. 【linux编程】linux中HZ和Jiffies的关系
  2. Joblogs&mdash;&mdash;ContentValues的使用
  3. java学习笔记--IO流
  4. php-resque学习笔记二(配置)
  5. Source Insight中文操作支持的宏
  6. Hibernate过程小计
  7. c++试题
  8. pycharm+QT4的helloworld
  9. VS2013调试的时候出现 “检测到在集成的托管管道模式下不适用的 ASP.NET 设置的解决方法”
  10. python --商品评价---- 数据表结构以及理解
  11. centos7下安装docker(17docker监控---docker自带监控命令)
  12. expressjs项目里使用npm run dev,实现热更新
  13. linux异常处理:selinux配置错误导致无法重启
  14. 30 个 OpenStack 经典面试问题和解答
  15. APP支付-》支付宝RSA2-&gt;支付与验签
  16. Linux下设置Apache支持Https服务
  17. day35
  18. C++两个矩阵相乘
  19. Autoafc 手动获取接口实例
  20. __devexit_p的功能

热门文章

  1. python---Numpy模块中创建数组的常用方式代码示例
  2. PHP实现DES/ECB/PKCS5Padding加密兼容Java SHA1PRNG算法
  3. 《你说对就队》第九次团队作业:【Beta】Scrum meeting 3
  4. RCNN,Fast RCNN,Faster RCNN 的前生今世:(3) SPP - Net
  5. python根据字典的值进行排序:
  6. RANSEC算法
  7. Map的常用实现类及Entry的用法
  8. Kubernetes 学习3 kubeadm初始化k8s集群
  9. [SCOI2016]妖怪
  10. 【概率论】6-4:分布连续性修正(The Correction for Continuity)