typescript封装统一操作的mysql,mongodb的底层库

功能:定义一个操作数据库的库,支持mysql、monbodb

要求:都有增删改查方法

约束统一的规范,以及代码的重用

解决方案:需要约束规范所以要定义接口,需要代码重用所以用到泛型

接口:在面向对象编程中,接口是一种规范的定义,它定义了行为和动作的规范

泛型:通俗理解,泛型就是解决类、接口 、方法的复用性

interface DBI<T>{  //定义一个接口
    add(info:T):boolean;
    update(info:T,id:number):boolean;
    delete(id:number):boolean;
    get(id:number):any[];
}
//定义一个操作mysql的数据库的类
//注意:要实现泛型接口,这和类也应该是一个泛型类
class mysql<T> implements DBI<T>{
    //数据库链接
    constructor(){

    }
    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[] {
        var list=[
            {
                title:"****",
                password:"****"
            }
        ]
        return list
    }
}
//定义一个操作mysql的数据库的类
class mongodb<T> implements DBI<T>{
     //数据库链接
     constructor(){

    }
    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="小明";
u.password="123456";
//类作为参数来约束数据传入的类型
var my=new mysql<user>();
//增加数据
my.add(u);

 

posted @ 2021-11-06 12:56  keyeking  阅读(235)  评论(0编辑  收藏  举报