前进之路 发表于 昨天 18:35

更恰当中国宝宝的入门级Prisma教程

写在前面:不知道各人在写后端/全栈项目(作者主前端)的时间,有没有因为须要写数据库的相干代码感觉很头疼。实在不是不会写相干的代码,而是觉得很长、可读性差、很麻烦。因此我迫切须要一个好用的工具来让我在我的训练项目中简化我与数据库交互的过程。
本文是在Next的项目中使用的示例,也就是说比力恰当有一定基础的前端或者是Node伙伴来学习,当然我认为后端的小伙伴看完之后也会领略Prisma带给我们的便利,好了,话不多说,我们如今开始!
Prisma是干什么的

Prisma是一个当代化的数据库工具,用于简化与数据库交互。它提供了一个范例安全的ORM(对象关系映射),允许开发者通过范例化的方式界说数据库模型,并生成与数据库通信的代码,从而使数据库操纵更加高效和可靠。
Prisma的使用场景



[*] 当你须要构建一个须要与数据库频繁交互的当代Web应用时,Prisma提供了高效的数据库查询和管理工具。
[*] 如果你希望在数据库查询中得到范例安全,制止因拼写错误或范例错误导致的运行时错误,Prisma提供了强大的范例生成功能。
说的好理解一点,他就是你项目独一无二的伪数据库(实则不是如许的,但是方便理解)
Prisma的优势


[*] 范例安全:使用TypeScript的范例界说,Prisma可以提供范例安全的数据库操纵,减少运行时错误并提高开发效率。
[*] 自动化生成代码:基于 schema.prisma 文件自动生成 Prisma 客户端,使得数据库操纵更加简洁和直观。
[*] 直观的数据库迁移:Prisma的迁移工具允许你轻松地管理数据库schema的变更,并确保数据库和代码的同步。
[*] 简洁的查询语法:使用Prisma的查询API,可以用简洁的代码举行复杂的数据库查询和操纵。
[*] 高性能:Prisma生成的查询是高度优化的,可以或许有效地处理大型和复杂的数据库操纵。
Prisma的使用(这才是重点!)

在使用之前保举下载Vscode中的官方插件Prisma,插件会在特定的文件中提供代码高亮以及相干提示词
https://i-blog.csdnimg.cn/direct/e0494fc273044b7692fd607fbeabb418.png
   以下的使用均基于Nextjs,但是我希望大伙知道,这东西和前后端很多盛行框架都是无缝结合的
安装CLI

官方保举在本地中安装Prisma,制止全局安装时大概发生的版本冲突
pnpm install prisma --save-dev
初始化项目

pnpm dlx prisma init
   我们初始化后,Prisma会自动创建一个基础的.env和/prisma/schema.prisma

[*].env
环境变量,不多bb

[*]/prisma/schema.prisma
我们所谓的内容基本都写在这里面
配置环境

这里我为了方便使用的是Neon的云数据库,现实使用本地数据库的话,将这个连接信息更换即可
https://i-blog.csdnimg.cn/direct/224fd040710d4de490207e4705abb1cc.png
开始创作

配置代码生成和数据库连接

这里要说的是我们在初始化Prisma后,在/prisma/schema.prisma下生成的内容:
https://i-blog.csdnimg.cn/direct/d836187495cc4ff7b0b6d20912fe92e4.png
   
[*]datasource db:配置块用于界说Prisma应该连接到哪个数据库

[*]provider:指定数据库的范例(五大数据库范例都可以)
[*]url:确保与.env中的名头一致

[*]generator client:界说Prisma生成什么样的客户端代码(背面细说)
模型编写

Prisma使用特定的语言来描述数据模型和数据库结构,换种简单的方式理解,我更愿称它为SQL的伪代码
先来一个小Model:
model User {
id    Int   @id @default(autoincrement())
email String@unique
nameString?
}
翻译成SQL为:
CREATE TABLE User (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
name VARCHAR(255)
)
   我们简单聊一下几个常见注解(不想看的可以直接跳过):

[*]@id:界说主键
[*]@unique: 添加唯一束缚
[*]@relation: 通常用于多对一或一对多的关系
[*]@default(): 设置默认字段

[*]@default(uuid()): 默认值为随机生成的uuid
[*]@default(now()): 默认值为当前时间戳
[*]@default(autoincrement()): 默认值为自增的数字

导出使用

pnpm prisma generate
我们实行上述命令后,控制台会像下面如许:
https://i-blog.csdnimg.cn/direct/6cf0a356f0df4073a3120610d0f439d1.png
生成的Prisma客户端代码会放在 node_modules/@prisma/client 目录下,你可以在代码中导入并且更加方便的对我们的数据库举行相干的CRUD操纵
如何使用Prisma举行CRUD操纵呢?请待下期分晓hhh
更新数据库

无论你使用的是本地还是云端的数据库,你一定不希望在你一顿操纵猛如虎后,数据没有被你成功“操纵”。
当然不要傻乎乎的觉得我们前面已经配置好环境了,我们写的每一行代码都会无差别的在数据库中更新,我们须要人为去强行将本地或是云端的数据库与我们项目中的Prisma schema举行同步。
pnpm prisma db push
如果上面你成功配置好环境并且正确的在Prisma中将其与你的数据库连接后,那么恭喜你,你可以在数据库中看到自己界说的内容了qwq
附上
Prisma的官网网站(英文)
Prisma的官方网站(中文)
中文的给人的感觉就是机翻,很水,建议有本领的小伙伴看英文的网站,非常全面!
后续我会继承更新Prisma的知识,如果你觉得这篇文章对你有资助,希望你可以留下一个免费的赞做为对我的鼓励,谢谢各位帅哥美女!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 更恰当中国宝宝的入门级Prisma教程