什么是 ORM
ORM(Object-Relational Mapping)是一种将对象模型表示为关系数据库模型的技术。这意味着你可以使用 JavaScript 对象来表示数据库中的记录,而不需要手动编写 SQL 查询语句。
ORM 技术为前端开发提供了方便,因为它允许开发人员使用简单的 JavaScript 语法来访问和操作数据库。这就使得开发过程更加高效、方便、快速。
ORM 常用 npm 包
Sequelize:用于 Node.js 应用程序与 MySQL、MariaDB、SQLite 和 PostgreSQL 数据库之间的通信。它支持 ES6 语法,允许在代码中定义数据模型,支持事务和连接池等功能;
TypeORM:支持 Node.js 和浏览器,可用于 MongoDB、PostgreSQL、MySQL、MariaDB、SQLite、MS SQL Server 等数据库。它包括多种数据存储模式,支持用 TypeScript 或 JavaScript 编写实体和查询,并支持模块化设计;
Prisma:由语言无关的 SQL 查询生成器和 flexible CRUD 索引器组成,可以与 Prisma Client 配合使用,在 TypeScript 和 JavaScript 中使用。它使用来自 MongoDB 的概念和功能,如文档数据库。
本文以 Sequelize 作为示例进行 ORM 的使用教程介绍,让读者快速上手使用 ORM 技术。
使用 Sequelize
安装
首先,需要安装 node 和 npm,然后输入以下命令进行 sequelize 的全局安装和启动:
npm install --save sequelize npm install --save mysql2 // 或其他数据库适配器
代码示例
在使用 Sequelize 之前,需要先定义您的数据模型。下面是一个 users 表的定义,该表代表了一个具有 id、 name 和 email 字段的用户。
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- --------------------- ----------- ----------- - ----- ------------ -------- ---------- --- ----- ---- - ------------------------ - --- - ----- ------------------ -------------- ----- ----------- ---- -- ----- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ------ ------- ---- - --- ----------- ------ ---- ---------- -- - -- ------- ---
上述代码中,我们定义了一个名为 User 的模型,模型包含了 id、 name 和 email 字段。我们希望 id 字段在新纪录插入到数据库时会被自动增加,而 name 和 email 字段则是必须存在的,其中 email 字段必须是唯一的。
sequelize 的基本操作
- 数据库连接:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'postgres' });
- 插入数据:
User.create({ name: 'John', email: 'john@example.com' }).then(user => { console.log(user.toJSON()); });
- 查询数据:
User.findAll().then(users => { console.log(users); });
- 更新数据:
User.update({ name: 'New Name' }, { where: { id: 1 } }).then(() => { console.log('Done'); });
- 删除数据:
User.destroy({ where: { id: 1 } }).then(() => { console.log('Done'); });
关联关系
Sequelize 的强大之处在于其支持关联。下面是一个示例,展示了在一个示例数据库中定义两个租户和一个订单的关系:
-- -------------------- ---- ------- ----- ---- - ------------------------ - ----- - ----- ---------------- - --- ----- ----- - ------------------------- - --------- - ----- ----------------- - --- -------------------- ---------------------- ------------------------ -- - ------------- ----- ------ ------------ -- - ------------------ --------- - ------------- -- - ---------------------------- --- --- ---
在上面的示例中,我们定义了两个模型 User 和 Order。User 和 Order 之间的关系是“一个 User 可以有多个 Order,而一个 Order 只属于一个 User ”。在第二个语句中,我们使用 User.hasMany(Order) 和 Order.belongsTo(User) 来定义这种关系。然后,我们使用 user.createOrder() 方法来创建一个新的订单,该方法将自动关联到 Lisa 示例用户中。
同步表
在开始你编写应用程序之前,你需要执行 Sequelize.sync() 方法来确保 sequelize 实例连接到数据库。这个方法将连接到数据库,并自动创建与数据模型相对应的表。
sequelize.sync().then(() => { console.log('Database connected successfully'); }).catch(err => { console.log('Unable to connect to the database:', err); });
总结
此文介绍了 ORM 技术及其在前端中的应用,以 Sequelize ORM 包为例,介绍了其安装和使用方法。读者可以自行使用不同的 ORM 包进行学习和实践,做到更好的前端开发工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/76301