首页 > 其他分享 >[Typescript] Query builder example

[Typescript] Query builder example

时间:2024-08-02 14:16:44浏览次数:8  
标签:Typescript return string builder private example table Query email

class QueryBuilder {
  private fields: string[] = []
  private wheres: Record<string, string> = {}
  private table: string = ""

  select(...columns: string[]) {
    this.fields = columns
    return this
  }

  from (table: string) {
    this.table = table
    return this
  }

  where(column: string, value: string) {
    this.wheres[column] = value
    return this
  }

  build() {
    return `SELECT ${this.fields.join(", ")} FROM ${this.table} WHERE ${Object.entries(this.wheres).map(([k, v]) => `${k} = ${v}`).join(" AND ")}`
  }
}

const query = new QueryBuilder()
  .select("name", "email")
  .from("users")
  .where("id", "1")
  .where("email", "[email protected]")
  .build()

console.log(query) // "SELECT name, email FROM users WHERE id = 1 AND email = [email protected]" 

 

标签:Typescript,return,string,builder,private,example,table,Query,email
From: https://www.cnblogs.com/Answer1215/p/18338689

相关文章

  • 24-7-31String类,StringBuffer类,StringBuilder类的详解与比较
    24-7-31String类,StringBuffer类,StringBuilder类的详解与比较文章目录24-7-31String类,StringBuffer类,StringBuilder类的详解与比较StringString的结构String的方法String对象的两种创建方法String的其他方法String练习StringExercise01StringExercise02StringExer......
  • [Typescript] Excess Properties in Functions
    interfaceUser{id:number;name:string;}constusers=[{name:'Waqas',},{name:'Zain',},];constusersWithIds:User[]=users.map((user,index)=>({...user,id:index,//@ts-expect-error......
  • HBuilderX 开发中使用 Node.js 搭建PDA扫码程序的服务端过程
    以下是使用HBuilderX和Node.js搭建程序服务端的大致步骤: 1. 安装Node.js首先,从Node.js官方网站下载并安装适合您操作系统的版本。在命令提示符中执行node-v,npm-v,检查nodejs版本是否安装完成。配置环境变量。2. 安装Oracle客户端根据您的操作系统,下载并安......
  • 前端——jQuery中的事件与动画
    jQuery事件事件组成在jQuery中,一个事件由事件主体、事件类型、事件处理函数三个部分组成。//实现事件$("#button").click(function(){//...})//调用事件$("#button").click();鼠标事件常用的鼠标事件方法方法                  ......
  • drush ev ‘\Drupal::service(“router.builder“)->rebuild();‘
    【chatgpt】这是一个用于Drupal网站的Drush命令,用于重建路由信息。在Drupal中,路由信息用于定义URL路径与回调函数之间的映射关系,以便Drupal能够正确处理来自用户的请求。路由信息由模块提供,并在Drupal的路由系统中进行注册和管理。Drush是一个用于在命令行中管理和......
  • 了解Web标准,HTML 语法规范,使用 HBuilder X 构建文档骨架,HBuilder X 生成骨架标签新增
    Web标准是由W3C组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织。遵循Web标准可以让不同的开发人员写出的页面更标准、更统一外,还有以下优点:1.让Web的发展前景更广阔。2.内容能被更广泛的设备访问。3.更容易被搜寻引擎搜索。......
  • typescript基础语法补充
    TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,增加了静态类型和一些面向对象的特性。下面是对TypeScript的一些关键知识点的总结:TypeScript的特点超集:TypeScript完全兼容JavaScript,所有有效的JavaScript代码也是有效的TypeScript代码。静态类型:Ty......
  • Django&rest_framework - 方法 get_queryset 被调用两次,还有其他更好的解决方案吗?
    目前,我有一个使用django和rest_framework来运行一些基本API的项目。问题是,当我使用rest_framework和DjangoModelPermissions上的通用库创建视图时,我的方法get_queryset被调用两次My权限类classDefaultModelPermissions(DjangoModelPermissions):"""......
  • jQuery中的效果方法以及代码实例演示
    一.显示与隐藏1.show():显示隐藏的匹配元素。这个就是‘show(speed,[callback])’无动画的版本。如果选择的元素是可见的,这个方法将不会改变任何东西。无论这个元素是通过hide()方法隐藏的还是在CSS里设置了display:none;,这个方法都将有效。语法:$("#element").sho......
  • [Typescript] handle event.target type in Form
    TheerrorweencounteredinthischallengewasthattheEventTarget|nulltypewasincompatiblewiththerequiredparameteroftypeHTMLFormElement.Theproblemstemsfromthefactthatthesetypesdon'tmatch,andnullisnotpermitted:constdata......