/*

功能:定义一个操作数据库的库  支持 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);

TypeScript封装统一操作Mysql Mongodb Mssql的底层类库demo的更多相关文章

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

    功能:定义一个操作数据库的库,支持Mysql Mssql Mongodb 要求:Mysql Mssql Mongodb功能一样 都有add.update.delete.get方法 注意:约束统一的规范 ...

  2. 数据库们~MySQL~MongoDB~Redis

    mysql基础 mysql进阶 python操作mysql MongoDB Redis

  3. LightMysql:为方便操作MySQL而封装的Python类

    原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...

  4. 爬虫(九):python操作MySQL、MongoDB

    1. python操作MySQL 1.1 MySQL基础 在java基础部分就写过了. https://www.cnblogs.com/liuhui0308/p/11891844.html 1.2 p ...

  5. Python3操作MySQL基于PyMySQL封装的类

    Python3操作MySQL基于PyMySQL封装的类   在未使用操作数据库的框架开发项目的时候,我们需要自己处理数据库连接问题,今天在做一个Python的演示项目,写一个操作MySQL数据库的类, ...

  6. Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...

  7. 封装操作mysql、redis

    封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...

  8. jdbc操作mysql(三):利用注解封装

    案例五:利用注解封装 重复步骤 我们使用jdbc操作mysql时发现,操作不同表中数据,所写的方法基本相同:比如我们根据id向用户表添加数据,根据id删除商品表的数据,或者查询所有数据并用list集合 ...

  9. jdbc操作mysql(二):封装

    案例四:封装共有操作 封装一个数据库的会话的类 import java.sql.*; public class ConnectionUtil { /** * 获取连接对象的方法,返回一个Connect ...

随机推荐

  1. Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'phone' at row 1

    Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'phone ...

  2. 十二.Protobuf3编码

    本文档描述了协议缓冲消息的二进制格式.在应用程序中使用Protocol Buffer不需要理解这一点,但是了解不同的Protocol Buffer格式如何影响编码消息的大小会非常有用. 一条简单的信息 ...

  3. linux第三天

    一.用户的类型   1.root管理员:所有权限(r w x)   2.文件拥有者(u):谁创建谁拥有   3.组 (g):用户组   4.其它用户(o):不属于用户组,也不是文件的创建者,不是管理员 ...

  4. webpack起服务器报JavaScript heap out of memory

    配置如下: { "scripts": { "start": "node --max_old_space_size=4096 node_modules/ ...

  5. C#多线程代码示例

    using System; using System.Threading; namespace MultiThreadDemo { class Program { public static void ...

  6. 面试官常问的20道Java题目(附答案)-来自Java1234

    1. 以下代码的输出结果是(A) int i =3; i = i++; System.out.println(i); A .3  B.4  C.5 a=b++是先将b值赋值给a后b再自增. 2. Ma ...

  7. [Schematics] 1. Copy and Manipulate Template

    1. Create a src/my-component/files/src/app directory to hold your templates. mkdir -p src/my-compone ...

  8. [NgRx] NgRx Entity Adapter Configuration - Understanding sortComparer and selectId

    import { Course, compareCourses } from "../model/course"; import { EntityState, createEnti ...

  9. Apache Kylin在美团点评的应用

      本文原载自大数据杂谈微信公众号. 感谢美团点评工程师高大月撰文并授权转载. 高大月,美团点评工程师,Apache Kylin PMC成员,目前主要在美团点评数据平台负责OLAP查询引擎的建设. 背 ...

  10. regedit系统注册表,msconfig系统配置

    msconfig msconfig即系统配置实用程序,是Microsoft System Configuration的缩写.是在开始菜单里运行中输入然后确认就可以找到程序开启或者禁用, 可以帮助电脑禁 ...