일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- interface default
- it지원
- nodejs http
- templet
- git
- container-fluid
- SQL
- gradle 설치
- git 명령어
- 자바 로또
- 알고리즘
- 최대값 최소값
- nodejs
- ${}
- resultType="hashmap"
- cmd mariaDB
- 전역객체
- git message
- map형태 jsp와 mapper
- $(document).on
- bubblesort
- #{}
- 유효성
- REST
- a href="#" onclick="return false"
- MariaDB
- $('input [name=
- BCrypt
- 포워드 엔지니어링
- 자바 예상문제
- Today
- Total
Rubberduck-Debugging
[6일차]DAO를 사용하는 이유, PreparedStatement 본문
v4.5~4.8
1.app의 excute() 메소드로 command를 각각 실행한다.
2. command는 interface BoardDao를 통해 DBMS에 진입
3. DBMS는 File을 가져와서 다시 리턴
구성이 복잡해진 이유 : oracle, mysql 등 DBMS가 달라, ,sql언어에 차이가 있는 경우 어려움이 생긴다.
따라서 interface로 DAO를 구성해서, 고객사의 데이터베이스가 oracle인지 mysql인지에 따라 그떄그때 DAO만 바꿔주면 되는 것.
예) 만약 고객사가 MariaDB를 쓰는 경우, 아래처럼 BoardDao 인터페이스를 상속받아, 그에 맞는 구성을 해주면 되는 것.
(현재 JDBC언어로 Statement를 사용하여, 보안이 낮아진 상태)
PreparedStatement로 변경하여, sql 삽입 공격에도 로그인이 불가하도록 변경되었다(statement 사용 시 sql 삽입공격 허용됨)
sql 삽입공격
예시 1) 로그인할때 아이디만 알아도 전부 로그인 가능
2) 다른 사람 아이디로 글쓰기
예방책 : preparedStatement 사용 등
더 알아보기 위한 링크출처 :
https://github.com/eomcs/eomcs-java-project/tree/master/eomcs-java-project-5.1.0-server
https://github.com/eomcs/eomcs-java-project/tree/master/eomcs-java-project-5.1.1-server
프로퍼티명 = 게터세터의 앞 겟셋을 지운 거!!
필드명 private int no; <- no
필드명과 플퍼명이 다를 수 있습니다~
'개발자 > 20181127 교육과정' 카테고리의 다른 글
[7일차] Spring IoC Container (0) | 2018.12.05 |
---|---|
[6일차] mapper 관련 기본 지식 (0) | 2018.12.04 |
[5일차] cmd로 MariaDB 시작, WAS와 JDBC 개념 (0) | 2018.12.04 |
[5일차] exerd 물리 DB모델링 (0) | 2018.12.03 |
[5일차] exerd 논리 DB모델링 (0) | 2018.12.03 |