一、什麼是ORM
ORM(Object Relational Mapping)對象關係映射,是一種將面向對象語言程序中的對象自動持久化到關係型數據庫中的技術。
ORM可以讓程序員使用面向對象的編程方式操作數據庫,屏蔽掉底層數據庫的許多複雜操作。ORM框架對於開發者來說,降低了開發難度和維護成本,提高了代碼的可讀性和可維護性。
二、Node.js中ORM的應用場景
ORM在Node.js中的應用場景主要包括:
1、數據庫的增刪改查操作;
2、將數據轉化為對象,方便操作;
3、使用js語言操作關係型數據庫,不需要寫複雜的SQL語句;
4、屏蔽底層數據庫依賴,同時提高了代碼的可移植性。
三、Node.js ORM模塊
Node.js中常用的ORM框架有很多,比如Sequelize、TypeORM、Bookshelf、Waterline等,而在這裡我們關注一個基於Sequelize開發的ORM模塊:sequelize。
四、使用sequelize操作MySQL數據庫(示例)
//引入 sequelize
const Sequelize = require('sequelize');
//建立連接
const sequelize = new Sequelize('database_name', 'username', 'password', {
host: 'localhost',
dialect: 'mysql',
//用戶名密碼是否需要加密
operatorsAliases: false,
define: {
//取消Sequeilze的數據表名自動複數化
freezeTableName: true
},
//時區
timezone: '+08:00'
});
sequelize.authenticate().then(() => {
console.log('Connection has been established successfully.');
}).catch(err => {
console.error('Unable to connect to the database:', err);
});
//定義模型
const Model = Sequelize.Model;
class User extends Model {}
User.init({
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
comment: '用戶ID'
},
name: {
type: Sequelize.STRING(200),
comment: '用戶姓名'
},
age: {
type: Sequelize.INTEGER,
comment: '用戶年齡'
}
}, {
sequelize,
modelName: 'user'
});
//創建表格
sequelize.sync({
force: false //強制創建表,存在則刪除後重新創建
}).then(() => {
console.log('OK')
});
//增加
User.create({ name: 'tom', age: 25 }).then(user => {
console.log(user.toJSON());
});
//查詢
User.findAll().then(users => {
console.log(users);
});
//修改
User.update({ name: 'jerry' }, { where: { age: 25 } }).then(ret => {
console.log(ret);
});
//刪除
User.destroy({ where: { age: 25 } }).then(ret => {
console.log(ret);
});
五、sequelize常用API
1、define 定義模型
2、sync 同步表格
3、create 添加數據
4、findAll 查詢數據
5、update 更新數據
6、destroy 刪除數據
7、query 原生SQL語句查詢
8、transaction 事務操作
9、hook 鉤子函數
10、數據庫關係映射定義
六、總結
ORM框架是現代化Web開發工具中必不可少的一環,對於減少程序員錯誤率、提高開發效率和代碼可讀性都起到了積極的作用。Node.js中的ORM模塊sequelize提供了一系列的API函數,使得我們能夠快速地進行數據庫操作,同時減少了代碼的編寫量,是一個很好的選擇。
原創文章,作者:SASLV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372748.html
微信掃一掃
支付寶掃一掃