🍁PreparedStatementStatement와 PreparedStatement 차이Statement는 정적 SQL을 만들 때 사용하며, PreparedStatement는 동적 SQL를 만들 때 사용한다.매개변수가 없으면 정적 쿼리, 매개변수가 있으면 동적 쿼리를 의미한다. 정적 쿼리와 동적 쿼리정적 SQLString sql = "INSERT INTO tblAddress (seq, name, age, gender, address, regdate) VALUES (seqAddress.nextVal, 'Sopia', 21, 'f', '서울시 강남구 대치동', default)";String sql = "INSERT INTO tblAddress (seq, name, age, gender, address, r..
🍁JDBC 라이브러리 클래스1. ConnectionDB에 연결 또는 종료한다. 2. Statement모든 SQL을 실행하는 역할을 한다. 3. ResultSet데이터베이스로부터 쿼리의 결과를 저장하고 조회한다.ResultSet 클래스는 Interator, 향상된 for문, 스트림, 커서와 비슷하다. Statement의 종류1. Statement기본형이다.매개 변수 처리가 번거롭다.안정성과 가독성이 낮다. 2. PreparedStatement개량형이다.매개 변수 처리에 특화되어 있다.안정성과 가독성이 높다.기존 Statement에 매개변수 처리 과정을 손쉽고 안전하게 할 수 있게 만든 게 PreparedStatement이다. 3. CallableStatement개량형이다.프로시저 전용이다. 🍁State..
🍁DB 접속참조 변수 생성 및 importConnection conn = null;Connection으로 conn 참조 변수를 하나 만들고, java.sql 인터페이스로 import를 한다.이제 연결 문자열(Connection String)을 만들어야 한다. 연결 문자열 (Connection String)DB 서버 접속호스트명: 서버 IP or 도메인 주소 (localhost)포트번호: 1521SID: xe드라이버: thin사용자: hr암호: java1234String url = "jdbc:oracle:thin:@localhost:1521:xe";String id = "hr";String pw = "java1234";연결 문자열에는 DB 서버에 접속하는 모든 정보가 들어간다.이렇게 하면 DBeaver에..
🍁JDBCJDBC는 자바 프로그램과 데이터베이스(오라클)를 연결시켜 주는 자바 API(응용 프로그래밍 인터페이스)이다.JDBC는 데이터베이스에서 자료를 쿼리를 만들거나 업데이트하는 방법을 제공한다. 퍼시스턴스 계층JDBCSpring JDBCMyBatisJPAJDBC를 중간 계층이라고 하며, 정확하게는 퍼시스턴스persistence 계층(영구 계층)이라고 한다.퍼시스턴트 계층은 JDBC에만 있는 게 아니라, Spring, MyBatis 등에도 있다. JDBC 환경 설정*.jar 설치데이터베이스 제조사에서 배포하므로, 오라클을 사용한다면 오라클 홈페이지를 찾아가면 된다.이번에는 다른 방법으로 Oracle 폴더 경로에 있는 jar 파일을 가져와 보려고 한다. ojdbc6.jar 파일을 lib 폴더로 이동C:..
🍁EL (Expression Language)EL과 JSTL을 사용하면 구문이 단순해지고, 가독성이 향상된다.이들은 서로 다른 기술이지만, 섞어서 사용한다.슬로건은 "JSP에서 되도록 자바를 쓰지 말자!"이다. EL 표현식의 사용${}Expression()과 EL 언어는 완전히 다른 것이지만, 이름이 같다는 점에서 목적이 같다는 것을 알 수 있다.EL 언어는 기능을 대신하기 위해서 만들어진 언어이다. EL 표현식 a: b: c: EL a: ${a} b: ${b} c: ${c} b: ${pageContext.getAttribute("b")} --%> c: ${request.getAttribute("c")} --%> 기존에 사용하던 표현식을 EL을 사용하여 바꿀 수 있다.그런데 어떤 ..
🍁생명주기 내장 객체에 저장소를 제공하는데, pageContext, request, session, application 중에 어떤 것을 사용해야 하는지 의문이 생길 수 있다. 이때 내장 객체의 생명주기를 고려하면 된다.내가 저장하고 사용할 데이터를 어느 기간 동안 사용할지에 대해 결정하고, 내장 객체가 어느 기간 동안 객체가 유지되는지에 대한 생명주기를 고려하여 일치하는 것을 찾는다. ex19_scope_1: 데이터 입력 페이지ex19_scope_2: 데이터 수신 및 처리 페이지각 방법으로 데이터를 전달하는 과정을 살펴보면서 내장 객체의 생명주기에 대해 알아보도록 하자. ex19_scope_1 실패 int a = 10; /* 자바로 페이지 이동 */ //response.sendRedirect("ex1..
🍁파일 업로드 / 다운로드브라우저와 웹 서버 간에 파일을 복사하는 작업을 의미한다.클라이언트의 자원을 서버 쪽으로 복사하면 파일 업로드, 서버 쪽에서 클라이언트의 자원을 복사하면 파일 다운로드라고 한다. 파일 업로드 라이브러리cos libraryhttp://www.servlets.com/cos/ Servlets.com | com.oreilly.servlet www.servlets.comcos-22.05.zip 파일을 저장한다. C:\Class\code\server\JSPTest\src\main\webapp\WEB-INF\lib다운로드한 cos.jar 파일을 프로젝트의 WEB-INF폴더의 lib폴더에 저장한다. 이렇게 하면 톰캣이 대신 참조를 해 준다.그리고 업로드한 파일을 저장할 전용 폴더를 미리 만들..