[Typescript] Query builder example
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", "example@a.com")
.build()
console.log(query) // "SELECT name, email FROM users WHERE id = 1 AND email = example@a.com"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-08-02 [SAA + SAP] 16. RDS
2021-08-02 [SAA + SAP] 15. ElastiCache
2021-08-02 [SAA + SAP] 14. CloudFront & AWS Global Accelerator
2018-08-02 [Vue @Component] Extend Vue Components in TypeScript
2017-08-02 [React] Style the body element with styled-components and "injectGlobal"
2017-08-02 [React] Style a React component with styled-components
2017-08-02 [D3] Create DOM Elements with D3 v4