前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript学习第八篇 - 使用泛型类模块化封装DB库

TypeScript学习第八篇 - 使用泛型类模块化封装DB库

作者头像
越陌度阡
发布2020-11-26 14:45:27
4010
发布2020-11-26 14:45:27
举报

1. 封装DB数据库

代码语言:javascript
复制
// 定义数据库的泛型,便于操作多个数据库
interface DBI<T>{
    add(info:T):boolean;
    update(info:T,id:number):boolean;
    delete(id:number):boolean;
    get(id:number):any[];
}

// 定义一个操作MYSQL数据库的类      
// 注意:要实现泛型接口 这个类也应该是一个泛型类
export 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:'今天吃啥',
                desc:'青椒炒肉'
            },
            {
                title:'明天吃啥',
                desc:'凉拌黄瓜'
            }
        ]
        return list;
    }
}

2. 引入封装好的数据库,建立与数据库字段映射的模型

代码语言:javascript
复制
import { MySqlDB } from './MySqlDB.js';

// 定义数据库的映射
class ArticleClass {
    title: string | undefined;
    desc: string | undefined;
}

var ArticleModel = new MySqlDB<ArticleClass>();
export {
    ArticleClass,
    ArticleModel
}

3. 引入建立的数据库模型,操作数据

代码语言:javascript
复制
import {ArticleClass,ArticleModel} from './Model/Article.js';

// 增加数据
var article =new ArticleClass();
article.title='今天吃什么';
article.desc='随便炒个菜';

// 添加文章
ArticleModel.add(article);

// 获取文章
var result =ArticleModel.get(1);
console.log(result);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/01/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档