文章目录
写在前面:不知道大家在写后端/全栈项目(作者主前端)的时候,有没有因为需要写数据库的相关代码感觉很头疼。其实不是不会写相关的代码,而是觉得很长、可读性差、很麻烦。因此我急迫需要一个好用的工具来让我在我的练习项目中简化我与数据库交互的过程。
本文是在
Next
的项目中使用的示例,也就是说比较适合有一定基础的
前端
或者是
Node
伙伴来学习,当然我认为后端的小伙伴看完之后也会领略
Prisma
带给我们的便利,好了,话不多说,我们现在开始!
Prisma是干什么的
Prisma
是一个现代化的数据库工具,用于简化与数据库交互。它提供了一个类型安全的
ORM(对象关系映射)
,允许开发者通过类型化的方式定义数据库模型,并生成与数据库通信的代码,从而使数据库操作更加高效和可靠。
Prisma的使用场景
- 当你需要构建一个需要与数据库频繁交互的现代Web应用时,
Prisma
提供了高效的数据库查询和管理工具。 - 如果你希望在数据库查询中获得类型安全,避免因拼写错误或类型错误导致的运行时错误,
Prisma
提供了强大的类型生成功能。
说的好理解一点,他就是你项目独一无二的
伪数据库
(实则不是这样的,但是方便理解)
Prisma的优势
- 类型安全:使用
TypeScript
的类型定义,Prisma
可以提供类型安全的数据库操作,减少运行时错误并提高开发效率。 - 自动化生成代码:基于
schema.prisma
文件自动生成 Prisma 客户端,使得数据库操作更加简洁和直观。 - 直观的数据库迁移:
Prisma
的迁移工具允许你轻松地管理数据库schema
的变更,并确保数据库和代码的同步。 - 简洁的查询语法:使用
Prisma
的查询API
,可以用简洁的代码进行复杂的数据库查询和操作。 - 高性能:
Prisma
生成的查询是高度优化的,能够有效地处理大型和复杂的数据库操作。
Prisma的使用(这才是重点!)
在使用之前推荐下载Vscode中的官方插件
Prisma
,插件会在特定的文件中提供代码高亮以及相关提示词
以下的使用均基于
Nextjs
,但是我希望大伙知道,这东西和前后端很多流行框架都是无缝结合的
安装CLI
官方推荐在本地中安装
Prisma
,避免全局安装时可能发生的版本冲突
pnpminstall prisma --save-dev
初始化项目
pnpm dlx prisma init
我们初始化后,
Prisma
会自动创建一个基础的
.env
和
/prisma/schema.prisma
.env
环境变量,不多bb
/prisma/schema.prisma
我们所谓的内容基本都写在这里面
配置环境
这里我为了方便使用的是
Neon
的云数据库,实际使用本地数据库的话,将这个
连接信息
更换即可
开始创作
配置代码生成和数据库连接
这里要说的是我们在初始化
Prisma
后,在
/prisma/schema.prisma
下生成的内容:
datasource db
:配置块用于定义Prisma应该连接到哪个数据库 -provider
:指定数据库的类型(五大数据库类型都可以)-url
:确保与.env
中的名头一致generator client
:定义Prisma生成什么样的客户端代码(后面细说)
模型编写
Prisma
使用特定的语言来描述数据模型和数据库结构,换种简单的方式理解,我更愿称它为
SQL
的
伪代码
先来一个小Model:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
翻译成
SQL
为:
CREATETABLEUser(
id SERIALPRIMARYKEY,
email VARCHAR(255)UNIQUENOTNULL,
name VARCHAR(255))
我们简单聊一下几个常见注解(不想看的可以直接跳过):
@id
:定义主键@unique
: 添加唯一约束@relation
: 通常用于多对一或一对多的关系@default()
: 设置默认字段 -@default(uuid())
: 默认值为随机生成的uuid
-@default(now())
: 默认值为当前时间戳
-@default(autoincrement())
: 默认值为自增的数字
导出使用
pnpm prisma generate
我们执行上述命令后,控制台会像下面这样:
生成的
Prisma
客户端代码会放在
node_modules/@prisma/client
目录下,你可以在代码中导入并且更加方便的对我们的数据库进行相关的
CRUD
操作
如何使用
Prisma
进行
CRUD
操作呢?请待下期分晓hhh
更新数据库
无论你使用的是本地还是云端的数据库,你一定不希望在你一顿操作猛如虎后,数据没有被你成功“操作”。
当然不要傻乎乎的觉得我们前面已经配置好环境了,我们写的每一行代码都会无差别的在数据库中更新,我们需要人为去强行将本地或是云端的数据库与我们项目中的
Prisma schema
进行同步。
pnpm prisma db push
如果上面你成功配置好环境并且正确的在
Prisma
中将其与你的数据库连接后,那么恭喜你,你可以在数据库中看到自己定义的内容了qwq
附上
Prisma的官网网站(英文)
Prisma的官方网站(中文)
中文的给人的感觉就是机翻,很水,建议有能力的小伙伴看英文的网站,非常全面!
后续我会继续更新
Prisma
的知识,如果你觉得这篇文章对你有帮助,希望你可以留下一个免费的赞做为对我的鼓励,谢谢各位帅哥美女!
版权归原作者 tabzzz 所有, 如有侵权,请联系我们删除。