node.js
node.js mybatis-mapper + mysql 연동하기 DB 연동
YagSill
2023. 6. 11. 02:13
728x90
안녕하세요 yagsill 입니다.
오늘은 mybatis 와 mysql을 사용해서 db를 연동해 보겠습니다.
npm install mybatis-mapper
npm install mysql
api 호출하는 js 파일 내부에 선언해놨습니다.
공통 사용을 위해서 따로 파일을 빼서 사용하시는걸 추천드려요
const express = require("express")
const router = express.Router();
const mysql = require("mysql"); //RDBMS
const mybatisMapper = require("mybatis-mapper"); //설치한 Mybatis lib 맵핑
const connection = mysql.createConnection({
//커넥션 생성
host: "127.0.0.1", // 로컬이기 때문에 127이고 실제 서버는 서버 IP를 넣어주세요
database: "데이터베이스 이름", // DB 이름입니다
user: "유저아이디", // DB 권한이 있는 사용자 입니다.
password: "비밀번호", // 사용자의 패스워드 입니다
});
router.post("/login", function (req, res) {
//mapper 경로
mybatisMapper.createMapper(["./mapper/web.xml"]);
var param = {
user_id: req.body.user_id,
user_pw: req.body.user_pw,
};
});
module.exports = router;
간단하게 DB 내에 있는 아이디 정보를 가져와볼게요
mapper를 이용해 xml파일을 델꼬옵니다.
router.post("/login", function (req, res) {
//mapper 경로
mybatisMapper.createMapper(["./mapper/web.xml"]);
var param = {
user_id: req.body.user_id,
user_pw: req.body.user_pw,
};
var format = { language: "sql", indent: " " };
var query = mybatisMapper.getStatement(
"web",
"selectUserInfo",
param,
format
);
});
module.exports = router;
이제 sql의 포멧을 설정하고 쿼리를 날려보죠!
"web" => xml의 이름입니다.
"selectUserInfo" => 쿼리를 호출하는 xml의 키입니다. 이거를 기준으로 쿼리를 읽어들인다고 생각하시면 됩니다.
param => 요청 시 보내는 파라미터 입니다
format => 위에서 정의한 포멧입니다.
전체코드
router.post("/login", function (req, res) {
//mapper 경로
mybatisMapper.createMapper(["./mapper/web.xml"]);
var param = {
user_id: req.body.user_id,
user_pw: req.body.user_pw,
};
var format = { language: "sql", indent: " " };
var query = mybatisMapper.getStatement(
"web",
"selectUserInfo",
param,
format
);
// 로그인 비밀번호 입력 받는거 부터 ㄱ_ㄱ
// 이후 회원가입단 시작
connection.connect();
connection.query(query, [], function (error, results, fields) {
//전달
if (error) {
console.log(error);
}
return res.json({
resultCode: 200,
resultMsg: "성공",
data: results,
});
});
connection.end();
});
module.exports = router;
web.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="web">
<select id="selectUserInfo">
SELECT
user_id,
user_pw
FROM
user_info
WHERE
user_id = #{user_id}
</select>
</mapper>
이전에 var query 로 "web", "selectUserInfo", param, format을 넣었죠??
xml에서 #{ } 은 파라미터값입니다. 저는 파라미터값에 user_id와 user_pw를 넣었으니 xml에서 #{user_id} 라고 꺼내서 쓰면 됩니다.
간단하게 아이디를 찾아봅시다.
짠! 너무쉽죠??
728x90