V语言学习笔记-20内置SQL支持

内置SQL支持

目前仅为alpha阶段,当demo体验而已

V语言有一个内置的ORM,目前只支持postgres和mysql,后续支持sqlite

V ORM的好处有:

  • 针对不同的数据库,统一的一套语法,这样迁移到其他数据库变得更容易
  • SQL语法内置在V语言的语法中,不需要学习其他的语法
  • 安全,不可以通过注入生成SQL语句
  • 编译时检查,语法错误在编译时就可以被捕捉到
  • 简单易读,不再需要手工解析结果和构造对象
import pg
struct Customer { // 数据库表对应到结构体,结构体名目前要求跟表名一致
    id int // 第一个字段必须是一个整型的id字段
    name string
    nr_orders int
    country string
}

db := pg.connect(db_name, db_user) //连接数据库,返回DB类型

// select count(*) from Customer
nr_customers := db.select count from Customer //db.后面的就可以直接写SQL语句,并返回结果集,数组
println('number of all customers: $nr_customers')

// V syntax can be used to build queries
// db.select返回一个数组
uk_customers := db.select from Customer where country == 'uk' && nr_orders > 0
println(uk_customers.len)
for customer in uk_customers {
    println('$customer.id - $customer.name')
}

customer := db.select from Customer where id == 1 limit 1
println('$customer.id - $customer.name')

//插入数据到数据库
new_customer := Customer{name: 'Bob', nr_orders: 10}
db.insert(new_customer) 

更详细的SQL内容,可以参考pg章节

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容