1. Java+SQL 혼합된 형태 : 유지보수가 어렵다
2. 개발 생산성이 떨어진다 : 어렵고 개발 속도가 느리다.
-> 개선
1. Java와 SQL 분리 --> 연결이 필요(Mapping)
|
MyBatis Framework(DB Framework)
1. MyBatis란?
- SQL Mapping Framework for Java : http://mybatis.org
mybatis
mybatis.org
<참고>
프로그램 내에 무수히 많은 CRUD 존재 -> 그에 맞는 쿼리문 역시 존재
JDBC -> 유지보수 어려움(변경사항이 생겼을 때 자바 코드 내의 쿼리문 일일이 수정)
MyBatis -> SQL 쿼리문을 분리해서 JDBC보다는 낫지만 그래도 쿼리문이 많이 존재
--> 쿼리문을 쓰지 않는 방법은 없을까? --> Spring JPA
2. MyBatis 공식 문서 보는 법
3. SQL 분리
1) mapper XML file 생성
***<중요>***
이름이 같아야 한다.
<참고>
Mapper.java ---> Mapper Interface
Mapper.xml ---> Mapper XML file
2) Mapping
- 인터페이스와 XML 파일 이름은 동일해야 한다.
- <mapper>안의 namespace="패키지명+인터페이스 이름"
- SQL문과 메서드 연결 --> 메서드의 이름과 SQL문을 감싼 select의 id를 동일하게 한다
- 실행 결과를 받기 위한 타입을 지정해준다.
<참고>
resultType 지정시 오류가 발생할 수 있다.
Class/TypeAlias '내가 지정한 타입' not found
해결방법
1) 패키지명까지 다 적어준다.
2) servlet-context.xml파일을 수정해준다
4. Controller - Mapper 연결
- Controller --> Mapper Interface --> Mapper XML(SQL) --> 결과 Return
1) Controller에서 BoardMapper객체 생성
BoardMapper Interface도 객체니까 생성 OK!
멤버 변수로 선언해준다
private BoardMapper mapper;
List<Board> list = mapper.boardList();
2) 돌려받은 결과를 저장후 객체바인딩을 해준다.
request.setAttribute("list",list);
5. DB만들기(MySQL)
1) 구동하기
- [eGovFrame폴더] - [bin] - [mysql폴더]-[startup.bat]파일 더블클릭
- port번호는 3306이다
- 종료할 때는 [stop.bat] 더블클릭 혹은 [Ctrl+c]-->일괄작업을 끝내시겠습니까?(y/n) y
2) 접속하기
- [Window키] + r --> cmd 실행
- MySQL의 bin폴더로 이동
cd C:\eGovFrame-3.10.0\bin\mysql-5.6.21\bin
- 접속
mysql -u root -p
유저 root 패스워드 --> 패스워드를 모르기 때문에 일단 Enter
Enter password가 나오면 그냥 Enter
앞부분이 mysql로 바뀌면 접속 완!
3) 비밀번호 만들기
- cmd를 이용해 접속한 이유! 비밀번호가 없기 때문에 비밀번호를 만든 후 이클립스나 전용 툴로 접속하려고
- 데이터베이스를 확인한다
(기존 샘플 DB + 전자정부표준프레임워크의 샘플 DB(ex. com, hyb, sample)가 존재)
show databases;
- mysql(--> 사용자 정보를 가지고 있다) DB 선택
user mysql;
- 테이블을 확인
show tables;
- 유저 정보들을 확인
select * from user;
root의 비밀번호가 없음을 확인할 수 있다.
- 비밀번호 변경
update user set password=password('123') where host='localhost' and user='root';
flush privileges;
<참고> password='123' 하면 123이 저장되지만 password=password('123')하면 암호화하여 저장됨
<참고>
flush privileges;를 해줘야 비밀번호 변경이 완료된다.
4) 이클립스에서 DB 연결
- [Data Source Explorer] - [ Database Connections] --> com을 제외한 DB는 삭제
- com --> 오른쪽 클릭 --> [Properties]
- [Driver Properites]에서 삼각형 모양의 Edit Driver Definition 클릭
- Driver Type : MySQL JDBC Driver
- JAR List 탭 클릭
<참고> JAR파일은 왜 필요한가?
- DBMS의 종류는 많기 때문에 Java에서 API를 제공할 수 없음
- Java는 Interface를 제공하고 DB 벤더사들이 자신들의 제품에 맞는 Driver를 제공--> JAR파일
- Porperties 탭 클릭
- OK 누른 후 Test Connection을 클릭해서 Ping succeeded!나오는지 확인
- Apply and Close
- 원하는 DB(여기서는 mysql)을 더블클릭 혹은 오른쪽 클릭 후 connect
- SQL File 만들기
domain에서 [New] - [Other] - [General] - [File] 선택한 후 [Next]
이름을 board.sql
- 파일 상단에 Type, Name, Database를 지정해주고 Status가 Connected라고 되면 연결 완!
- 테이블 생성하기
쿼리문 작성 - 드래그하여 선택해주고 - 오른쪽 클릭+Execute Selected Text 혹은 [Alt]+x --> 밑에서 결과 확인
- 가데이터 넣기
[Spring] DB연결(2) (0) | 2022.06.03 |
---|---|
[Spring] 스프링의 기본 설정 파일 (0) | 2022.05.31 |
[Spring] POJO 만들기 (0) | 2022.05.26 |
[Spring] Maven을 이용한 스프링, 자바 버전 변경하기 (0) | 2022.05.26 |
[Spring] Hello World!(환경설정 및 프로젝트 만들기) (0) | 2022.05.25 |