[MVC SPRING] 07. 한글처리와 JDBC(DAO)
안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의
[NarP Series]MVC 프레임워크는 내 손에[나프1탄]
을 참고하였습니다.
MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고
나중에는 Spring Framework를 사용하는 방식의 강의입니다.
MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.
1. 한글처리 방법
- 영어와는 다르게 한글은 한글자당 2byte를 가지고 있다. 영어는 1byte다. (이건 알고 있는 내용이니깐..)
이름에 한글을 입력하게 되면 다음과 같이 출력이 된다.
- 그럼 한글이 깨지지 않게 하는 방법을 한 번 알아보도록 하자.
- 방법은 간단하다. 클라이언트에서 온 데이터는 request를 통해 전달받기 때문에, request의 인코딩 방식을
utf-8
로 변경해주면 된다. request.setCharacterEncoding("utf-8");
를 추가해주자
@WebServlet("/memberInsert.do")
public class MemberInsertController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// 1. 클라이언트에서 넘어온 파라미터 수집(VO에 하나의 정보로 묶어서 넣어주면 된다.)
String id = request.getParameter("id");
String password = request.getParameter("password");
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
String phone = request.getParameter("phone");
// vo 수집은, 생성자로 해도 되고, Setter로 해도 된다.
//MemberVO vo = new MemberVO(id, password, name, age, email, phone);
MemberVO vo = new MemberVO();
vo.setId(id);
vo.setPassword(password);
vo.setAge(age);
vo.setName(name);
vo.setEmail(email);
vo.setPhone(phone);
System.out.println(vo.toString());
}
}
2. 데이터 베이스 연결
- 데이터베이스를 연결하기 위해서는, URL과, user, password가 필요하다.
- user와 password는 데이터베이스를 만들 때 생성한 이름과 암호를 변수에 넣어주면 되고
주소는 다음과 같이 찾을 수 있다. Data Source Explorer
-SQL 데이터베이스 오른쪽 마우스 클릭
-Properties
-Driver Properties
를 누르면, URL이 나온다.- 해당 URL을 복사해서, 변수에 저장한다.
- 그리고, DB회사에서 제공해주는 driver를 다운받거나, 전자정부 프레임워크를 사용한다면
maven
-repository
-mysql
-mysql-connector-java
-원하는 버전
에서
mysql-connector-java-version
을WEB-INF
-lib
폴더에 복사해주면 된다. - 그 다음, Driver를 로딩해줘야 한다. MySQL은
com.mysql.jdbc.Driver
이다. Class.forName("com.mysql.jdbc.Driver")
을 try catch 문을 이용해, Driver 클래스를 찾고
DriverManager.getConnection(URL, user, password);
를 해주면 되는데, getConnection은, 데이터베이스 연결정보들을 반환한다.
그게 바로 Connection 클래스형태로 반환을 하기 때문에, conn이란 변수에 반환된 값을 대입하면 된다.
3. 데이터베이스 Driver란?
- 대표적인 데이터베이스로,
MySQL
,ORACLE
,MS-SQL
이 있다.
그런데 만약 이 회사들이 사용하는 API가 다르다면 어떻게 될까?
MySQL
로 만들어진 프로젝트에서 갑자기MS-SQL
로 바뀐다..? 그럼 하나하나 다시 전부 바꿔줘야하는가? 그건 아니다.
그래서 각자 프로그램에서 제공하는 것이 Driver다.
자바에서 제공하는 interface를 가지고, 각 DB 회사들은 자신들만의 클래스를 만든다.
그럼 해당 회사들이 그 클래스들을 제공하도록 하는 것이 바로Driver
가 된다.
그래서 자바 개발자들은, JDBC(java.sql)만 알면 되고, 각 회사에 맞는Driver
만 있으면 사용이 가능해진다.
- 연결이 되는 지 안되는 지는 다음 강의에서, insert 쿼리를 만들면서 확인을 해볼 것이다.
이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
다음 글로 찾아오겠습니다!