개발 창고/NodeJS

[Database] My Batis 설치

로이제로 2022. 5. 3. 11:47
반응형

이전 mssql connection 내용을 먼저 참조하시는게 좋습니다.

 

2022.05.03 - [분류 전체보기] - [NodeJS] MSSQL DB Pool 설정

 

[NodeJS] MSSQL DB Pool 설정

0. mssql 모듈 설치  $> npm i mssql 1. db config 파일 생성 : 서버와 개발환경 분리를 위하여, config파일은 분리하여 관리하는 것이 좋습니다. // dbconfig.js module.exports = { port:{DB서버 포트} , user:..

royzero.tistory.com

 

0. 모듈 설치

  $> npm i --save mybatis-mapper

 

1. xml 생성

  : TestSQL.xml 파일 생성

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="TestSQL">

    <select id="getList">
        SELECT COL1
        	 , COL2
          FROM TEMP
         WHERE COL1 = #{KEY1}
    </select>

 

2. sql 호출페이지에서 로드

const express = require('express');
const app = express();
const PORT = process.env.PORT || 8080;      // 8080포트로 지정
const pool = require('./db/sql');           // 사전에 생성산 pool 로드
const mapper = require('mybatis-mapper');	// MyBatis Mapper 로드

mapper.createMapper(['./TestSQL.xml'])   // MyBatis SQL 로드

// http://localhost:8080/api/test로 들어온 경우의 함수 생성
app.get('/api/test', async (req, res) => {
    try{
        const query = await pool;               // Query 실행을 위한 Pool 지정
        const params = { 'KEY1':'ASDF' }
        const format = { language:'sql' };
        const sqlText = mapper.getStatement('TestSQL', 'getList', params, format);
        const result = await query.request().query(sqlText);
        
        res.send(result);                       // Response에 결과값을 포함하여 전달
    }catch(err){
        res.status(500);                        // 에러 발생시 Response 상태를 서버에러인 500에러로 세팅
        res.send(err.message);                  // 에러 발생시 Response에 서버에러 내용 포함 전달
    }
})

// 서버 실행
app.listen(PORT, () => {
    console.log(`Server On : http://localhost:${PORT}/`);
})

 

반응형