mysql - JSP - insert(member) 처리

h220101·2022년 3월 22일
0
post-thumbnail

JDBC

Java data base connectivity

자바에서 DB 프로그래밍을 하기위해 사용되는 API
(데이터 베이스 종류에 상관없음)

JDBC API 사용 어플리케이션의 기본 구성

JDBC Driver
각 DBMS에 맞는 클라이언트
DBMS와 통신을 담당하는 자바클래스
DBMS별 알맞은 JDBC 드라이버 필요(jar)
로딩코드: Class.forName("JDBC 드라이버이름");
*Mysql : com.mysql.jdbc.Driver

JDBC URL
DBMS 연결을 위한 식별 값
JDBC 드라이버에 따라 형식이 다름.
구성: jdbc[DBMS] : [데이터베이스 식별자]
*Mysql : jdbc:mysql://PORT/DBNAME?

JDBC 프로그래밍 코딩흐름

1 : 드라이버 로딩 (mysql 선택)
2 : Connection 객체로 DB연결

  • 2-1 ip 주소
    2-2 port 번호
    2-3 db접속 id
    2-4 db접속 pw
    2-5 db명 (sid,service name)

3 : Query 실행 준비
(statement 또는 PreparedStatement 객체생성)

4 : Query 실행

5 : Query 실행 결과사용
(insert,update,delete의 경우 생략 가능단계)

6 : statement 또는 PreparedStatement 객체 종료(close())
7 : DB연결 (Connection 객체) 종료(close())


jsp - insert (회원가입)

insert action, form 2개 파일 작성.

  1. m_insert_action.jsp (회원가입 / 화면)
    액션파일 작성
  2. m_insert_form.jsp (회원가입 / 처리)
    경로 설정 -> m_insert_action.jsp
    폼파일 실행
  3. 입력 값 실행확인

1 : 드라이버 로딩 (mysql 선택)

2 : Connection 객체로 DB연결

  • 2-1 ip 주소
    2-2 port 번호
    2-3 db접속 id
    2-4 db접속 pw
    2-5 db명 (sid,service name)
Connection conn = null;

String jdbcDriver = "jdbc:mysql://localhost:3306/dev43db?" +
"useUnicode=true&characterEncoding=euckr";
String dbUser = "dev43id";
String dbPass = "dev43pw";
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);

getConnection 메서드 호출되는 이유?
DriverManager 클래스에 static으로 선언된 메서드이기 때문이다.

static으로 선언된 메서드는 새로운 객체생성 X
-> 클래스명.메서드호출( );
connection interface data type으로 conn객체참조변수 선언 후 JDBC4Connection 클래스 통해 생성된 객체의 주소값을 conn에 할당한다.

패키지명:java.sql
클래스명:DriverManager
//메서드 선언
static Connection getConnection(String url, String user, String password){
//매개변수에 3개의 값 입력받고

  • 2-1 ip 주소
    2-2 port 번호
    2-3 db접속 id
    2-4 db접속 pw
    2-5 db명 (sid,service name)

정상 또는 비정상 판단 후 정상이면 Connection 객체의 주소값을 리턴, 그렇지 않으면 에러발생

mysql driver 로딩에러

Class.forName("com.mysql.jdbc.Driver");
로딩코드가 찾을수있는 JDBC 드라이버(jar)가 있어야한다.
(WebContent 하위 lib 폴더위치)

3 : Query 실행 준비

(statement 또는 PreparedStatement 객체생성)

PreparedStatement prepareStatement(String sql) {
//매개변수 sql에 쿼리문장을 입력받고
PreparedStatement ps = new PreparedStatement();
return ps;

profile
기록하는 삶

0개의 댓글