어제 면접을 봤는데, node.js에서 DB연동을 할때 mybatis를 썼냐는 질문에
안쓰고 db별로 제공하는 모듈을 썼다고 하니 고개를 갸우뚱하셔서.. 그때 질문을 못하고 끝나고 와서 공부했다.
es6에선 Template String이 지원되니 따로 모듈로 빼서 관리를 했는데..
아직 이유는 모르겠지만 상황에 맞게 쓰면 되지않을까 싶다.
우선. mybatis모듈은 mybatis-mapper를 썼다.
사용법은 java에서 사용한것과 거의 비슷하다.
npm install --save mybatis-mapper
아래 예제는 https://www.npmjs.com/package/mybatis-mapper
<?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="fruit">
<select id="testBasic">
SELECT
name,
category,
price
FROM
fruits
WHERE
category = 'apple' AND
<![CDATA[ price < 500 ]]>
</select>
</mapper>
const mysql = require('mysql2');
const mybatisMapper = require('mybatis-mapper');
// create the connection to database
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test'
});
// create the myBatisMapper from xml file
mybatisMapper.createMapper([ './fruits.xml' ]);
// SQL Parameters
var param = {
category : 'apple',
price : 100
}
// Get SQL Statement
var format = {language: 'sql', indent: ' '};
var query = mybatisMapper.getStatement('fruit', 'testBasic', param, format);
// Do it!
connection.query(query, function(err, results, fields) {
console.log(results);
console.log(fields);
});
'javascript' 카테고리의 다른 글
[Javascript] 화살표 함수 Arrow Function (0) | 2019.11.21 |
---|---|
[Javascript] 객체 리터럴 (0) | 2019.11.21 |
[Javascript] 함수 선언식, 표현식 (0) | 2019.11.08 |
[Javascript] 콜백함수(Callback function) (0) | 2019.11.07 |
[Javascript] 1급 객체(First-class object) (0) | 2019.11.06 |
댓글