Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 완전탐색
- AWS
- 라우터
- react
- Algorithm
- 알고리즘
- 서버구축
- url parsing
- EventListener
- 정렬
- 자료구조
- BFS
- sort
- Spring Boot
- nodejs
- Router
- 리액트
- 탐욕법
- mysql
- spring
- 백준
- 토이프로젝트
- 동적프로그래밍
- 스터디
- EC2
- 백준알고리즘
- 브루트포스
- ELB
- java
- 다익스트라 알고리즘
Archives
- Today
- Total
공부하는 블로그
Node.js | Node.js - MySQL : Multiple Statements 본문
Multiple Statements
비동기 방식을 따르는 Node.js에서는 다중 쿼리를 처리하려면 하나의 쿼리문을 처리 후 콜백 함수를 계속 사용해서 처리해야 한다. 그러나 쿼리가 많아질수록 코드가 복잡해지므로 이를 간단히 하기 위해 mysql 모듈에는 다중쿼리를 한번에 처리할 수 있도록 지원한다.
1. mysql 모듈을 사용하기 위해 임포트
const mysql = require('mysql');
2. DB 연결 객체 생성
const connection = mysql.createConnection( {
host: 'ip',
port: 'port_number',
user: 'user_name',
password: 'pwd',
database: 'db_name',
multipleStatements: true // 다중쿼리용 설정
})
3. DB 연결
connection.connect();
4. 다중 쿼리 정의
예시로 다중 insert문을 정의해보았다. 각 쿼리의 파라미터 매핑(mapping)은 'mysql.format()'을 이용하였다.
const users_arr = [
{ id: 'kimkim1', pwd: '123', name: 'kim' },
{ id: 'leelee2', pwd: '456', name: 'lee' },
{ id: 'baebae3', pwd: '789', name: 'bae' }
]
const sql = "insert into user(id, pwd, name) values (?, ?, ?); ";
let sqls = "";
let params = [];
user_arr.map( user => {
params = [user.id, user.pwd, user.name];
sqls += mysql.format(sql, params);
} );
5. 다중 쿼리 실행
다중 select문을 실행할 경우 result에 단일 쿼리의 조회 결과가 순차적으로 배열 요소로 저장이 된다. 즉, index가 0인 배열의 요소로 첫 번째 쿼리의 실행 결과가, index가 1인 배열의 요소로 두 번째 쿼리의 실행 결과가 담기게 된다. 각 단일 쿼리의 실행 결과도 배열이므로 result는 이중배열 구조를 가지게 된다.
connection.query(sqls, (err, [result]) => {
// logics
});
Reference
'Node.js' 카테고리의 다른 글
Node.js | Node.js - MySQL : 연동하기 (16) | 2019.12.28 |
---|---|
Node.js | Express : Template Engine (0) | 2019.12.28 |
Node.js | Express : Request Parameters (0) | 2019.12.23 |
Node.js | Express : Routing (0) | 2019.12.19 |
Node.js | Express : Intro (0) | 2019.12.19 |
Comments