首頁 >web前端 >js教程 >ORM 以及在 javaScript 中使用 TypeOrm 將資料從 MongoDb 遷移/新增到 MySql 資料庫

ORM 以及在 javaScript 中使用 TypeOrm 將資料從 MongoDb 遷移/新增到 MySql 資料庫

Linda Hamilton
Linda Hamilton原創
2024-12-23 17:20:18823瀏覽

什麼是 ORM?
物件關係映射或簡稱 ORM 是一個庫或工具,可以幫助我們與資料庫交互,而無需編寫原始資料庫查詢。

我們不是直接管理資料庫表和行,而是在程式碼中使用一些對象,ORM 將這些對象轉換為資料庫查詢,當從資料庫檢索資料時,ORM 將資料映射回對象。

ORM 在物件導向程式和關聯式資料庫之間架起了一座橋樑。

用例:
如果我們正在創建一個 javaScript/TypeScript 應用程序,並且當我們需要資料庫用於後端服務時,那麼我們可以使用 ORM 將我們的應用程式連接到資料庫。

ORM and Migrating/Adding Data to MySql Database from MongoDb using TypeOrm in javaScript

在不同語言中使用的幾個 ORM 是:

  1. JavaScript/TypeScript:TypeOrm、Sequelize
  2. Python:Django ORM、SQLAlchemy
  3. Java:休眠

為什麼我們應該在我們的應用程式中使用 ORM?

  1. 提高安全性,ORM工具的建構是為了消除SQL注入攻擊的可能性
  2. 使用 ORM 工具比使用 sql 編寫的程式碼更少。
  3. 使用 TypeORM,從一個資料庫切換到另一個資料庫(例如,從 MySQL 到 PostgreSQL)非常簡單,並且只需要很少的更改,使其能夠高度適應不斷變化的資料庫需求的專案。

現在讓我們了解如何使用 javaScript 中的 TypeOrm 將資料從 mongodb 新增到 Mysql 資料庫。

我們需要做的第一件事就是設定 MySql 和 MongoDb 的連線

首先使用 DataSource 定義配置,它將使用指定的憑證和主機資訊連接到 MySql 資料庫。它還將實體類別映射到資料庫表,從而啟用 orm 功能。這是它的程式碼。

我將採用我所做的簡單大學模型,以便讓您更好地理解它。

檔名:connect.js

const { College } = require('./sqlmodels/College.model');   //taking model as a example here 
const sqlDataSource = new DataSource({
    type: "mysql",
    host: "XXXX", 
    port:  3306,
    username: 'myUserName',
    password: 'MyPassWord',
    database: 'MyDb',
    driver: require("mysql2"),  
    connectTimeout: 10000,
    entities: [
         College  // define all your entities here 
    ],
    synchronize: true,
    logging: false
}); 

現在使用 sqlDataSource 中定義的憑證和配置連接到 MySQL 資料庫。這是它的程式碼

module.exports.connectSQL = async function () {
    try {
        console.log("Trying to connect to SQL Database...");
        await sqlDataSource.initialize();
        console.log("Successfully connected to SQL Database");
    } catch (error) {
        console.error("Error occured while connecting SQL", error);

    }
}

始終在具有適當日誌的 try catch 區塊中編寫程式碼,這將幫助您更快地偵錯程式碼,以防出錯。

在繼續操作之前,也要確保您已正確連接 mongoDb 資料庫。

首先在單獨的資料夾中定義表的架構,讓我將其命名為 sqlmodels,並在其中為您的模型建立頁面。
我們需要將此檔案匯入到我們編寫連接程式碼的 connect.js 檔案(第一個程式碼)

這是大學模式的代碼

const { EntitySchema, Entity, Column } = require('typeorm');

module.exports.College = new EntitySchema({
    name: 'College',
    tableName: 'College',
    columns: {
        _id: {
            primary: true,     // true if _id is your primary key
            type: 'varchar',  // define the type 
            length: 255,

        },
        college_name: {
            // define name of the column and its properties
            name: 'college_name', 
            type: 'varchar',
            length: 255,
            default: 'NO COLLEGE', 
            nullable: false

        }
    }

})

確保您已設定 mongoDb 連線並且也為其定義了架構。

現在我們需要做的最後一件重要的事情是編寫從 mongoDb 獲取資料並將其添加到 sql 表的函數。

const { College } = require('./sqlmodels/College.model');   //taking model as a example here 
const sqlDataSource = new DataSource({
    type: "mysql",
    host: "XXXX", 
    port:  3306,
    username: 'myUserName',
    password: 'MyPassWord',
    database: 'MyDb',
    driver: require("mysql2"),  
    connectTimeout: 10000,
    entities: [
         College  // define all your entities here 
    ],
    synchronize: true,
    logging: false
}); 

這裡我將數據放入卡盤中,然後將它們插入表中,如果您正在處理大量數據,這將很有幫助,因為在 mongoDb 中一次獲取大量數據是不可行的。

由於這是我的第一篇博客,歡迎您提出建議和回饋,以提升自己。
感謝您的閱讀?

以上是ORM 以及在 javaScript 中使用 TypeOrm 將資料從 MongoDb 遷移/新增到 MySql 資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn