Node.js ์์์ MyBatis
์ฃผ๋ณ ์ง์ธ๋ค์๊ฒ NodeJS๋ฅผ ๊ถ์ ํ๋ฉด์ ์คํฐ๋๋ฅผ ํ๋ค MyBatis์ ๋ํด ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ฌป๊ธธ๋ ๋ต๋ณ์ ํด์คฌ๋ ๊ธฐ์ต์ด ์๋ค.
Spring Framework ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Restful API ๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ MyBatis,
์ต๊ทผ์๋ ๊ด๋ จ ์ง๋ฌธ์ด ๋ค์ด์๊ณ , ๋ถ๋ช ๋๊ตฐ๊ฐ๋ ๊ถ๊ธํด ํ์ค ๊ฒ์ด๊ธฐ์!
๊ทธ ๋ถ๋ค์ ์ํด ๊ณต์ ํ๋ค.
์ค์น
$ npm install mybatis-mapper
์ ์ธ
const mysql = require('postgresql'); //RDBMS
const mybatisMapper = require('mybatis-mapper'); //์ค์นํ Mybatis lib ๋งตํ
//๋ณ๋๋ก ์ค์ ์ ๋นผ์ฃผ๋๊ฒ ์ข์ผ๋, ์์๋ฅผ ์ํด ํ ๊ณณ์ ์ ์ธ.
const connection = mysql.createConnection({ //์ปค๋ฅ์
์์ฑ
host: '์ฃผ์',
database: '๋ฐ์ดํฐ๋ฒ ์ด์ค',
user: '',
password : '๋น๋ฐ๋ฒํธ'
});
//mapper ๊ฒฝ๋ก
mybatisMapper.createMapper([ './src/resources/mappers/salesMapper.xml' ]);
//์กฐํํ ํ๋ผ๋ฏธํฐ
var param = {
sDate : '20210801',
eDate : '20210831'
}
//์ง์๋ฌธ ํ์
var format = {language: 'sql', indent: ' '};
//Spring FrameWork RESTFUL ์์ DAO ์ญํ ์ ํ๋ ๊ตฌ๋ฌธ
//์์๋๋ก xml์ name, xml์ id๊ฐ, ํ๋ผ๋ฏธํฐ, ํฌ๋งท.
var query = mybatisMapper.getStatement('salesMapper', 'dateBasic', param, format);
connection.connect(); //์ฐ๊ฒฐํ๊ณ ,
connection.query(query, function (error, results, fields) { //์ ๋ฌ
if (error) {
console.log(error);
}
console.log(results);
});
connection.end(); //๋๋๋ค.
MyBatis 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="salesMapper">
<select id="testBasic">
SELECT
*
FROM
TB_SALES
WHERE
transaction_date between #{sDate} AND #{eDate}
</select>
</mapper>
...
๋ง๋ฌด๋ฆฌ(๊ด๋ จ๊ธ)
https://www.npmjs.com/package/mybatis-mapper
๋ฐ์ํ