ORM이란 무엇인가요?
객체 관계형 매핑 또는 간단히 ORM은 원시 데이터베이스 쿼리를 작성하지 않고도 데이터베이스와 상호 작용할 수 있도록 도와주는 라이브러리 또는 도구입니다.
데이터베이스 테이블과 행을 직접 관리하는 대신 코드의 일부 객체로 작업하고 ORM은 이 객체를 데이터베이스 쿼리로 변환하며, 데이터가 데이터베이스에서 다시 검색되면 ORM은 데이터를 다시 객체로 매핑합니다.
ORM은 객체 지향 프로그램과 관계형 데이터베이스 사이에 다리를 만듭니다.
사용 사례:
javaScript/TypeScript 애플리케이션을 생성 중이고 백엔드 서비스용 데이터베이스가 필요한 경우 ORM을 사용하여 애플리케이션을 데이터베이스에 연결할 수 있습니다.
다양한 언어로 사용되는 ORM은 다음과 같습니다.
애플리케이션에서 ORM을 사용해야 하는 이유는 무엇입니까?
이제 javaScript에서 TypeOrm을 사용하여 mongodb의 데이터를 Mysql 데이터베이스에 추가하는 방법을 살펴보겠습니다.
가장 먼저 해야 할 일은 MySql과 MongoDb에 대한 연결을 설정하는 것입니다
먼저 지정된 자격 증명과 호스트 정보를 사용하여 MySql 데이터베이스에 연결할 DataSource를 사용하여 구성을 정의합니다. 또한 엔터티 클래스를 데이터베이스 테이블에 매핑하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!