Eclipse ์น ๊ฐ๋ฐ ๋ฒ์ , Tomcat, PostgreSQL ์ด ์ค์น๋์ด ์๊ณ
Eclipse์ Tomcat์๋ฒ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ
PostgreSQL JDBC Driver๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ์ํ๋ผ ๊ฐ์ ํ๊ณ ํฌ์คํ ์ ์งํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
JDBC Driver ๋ค์ด๋ก๋ํ๋ ๋ฒ
https://velog.io/@dlaskrgus8/PostgreSQL-JDBC-Driver-%EC%84%A4%EC%B9%98
๊ทธ๋ผ ์์ํด๋ณด๊ฒ ์ต๋๋ค.
ย ์ง๊ธ ์ ๊ฐ ํ๊ณ ์ ํ๋ ์์ ์ pgAdmin ์ด๋ SQL ํ๋กฌํํธ์์๋ง ๋ค๋ฃจ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Eclipse์์ ๋ค๋ฃจ๊ธฐ ์ํ ์์ ์ ๋๋ค.
ย ์ฐ์ DB์ ์ฐ๊ฒฐ์ ํด ๋ณผ ํ
์คํธ์ฉ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋ง๋ค์ด ์ค๋๋ค.
ย Dynamic Web Project ๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ค๋ ํ๋ฉด์์ Project name๋ง ์ ํด์ฃผ๊ณ Next ๋ฒํผ์ ํด๋ฆญํด ์ค๋๋ค.
ย ์๋ ํ๋ฉด์ Next ๋ฒํผ์ผ๋ก ๋์ด๊ฐ ์ค๋๋ค.
ย ๋ง์ง๋ง์
๋๋ค. ์ดํด๋ฆฝ์ค์์ web.xml ํ์ผ์ด ํ๋ก์ ํธ์ ์๋ ์์ฑ๋๊ฒ ํ๊ธฐ ์ํด Generate web.xml deployment descriptor
์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํ ํ Finish ๋ฒํผ์ ๋๋ฌ์ค๋๋ค.
ย ์ด๋ ๊ฒ ํ๋ก์ ํธ๊ฐ web.xml
ํ์ผ๊ณผ ํจ๊ป ์์ฑ๋์๋ค๋ฉด ์ฑ๊ณต์
๋๋ค.
ย ์ด ํฌ์คํธ๋ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์๋ค๋ ๊ฐ์ ํ์ ์ฐ์ฌ์ง ๊ฒ์ ๋๋ค.
ย ๊ทธ๋ ๋ค๋ฉด ์ด ํ์ผ์ด ์ฌ๋ฌ๋ถ์ ์ปดํจํฐ์ ์์๊ฒ์ ๋๋ค.
ย ์ด ํ์ผ์ ์๋ ๊ฒฝ๋ก์ ๋ณต์ฌํด ์ฃผ๋๋ก ํฉ์๋ค. ์ ์ ๊ฒฝ์ฐ์๋ ์๋์ ๊ฐ์ ๊ฒฝ๋ก๊ฐ ๋๊ฒ ์ต๋๋ค.
../workspace/postgreSQLconnect/src/main/webapp/WEB-INF/lib
ย ์๋์ ๊ฐ์ด ํ๋ก์ ํธ ์์ Java Resources/Libraries/Web App Libraries ์์ postgresql-42.5.0.jar
๊ฐ ๋ณด์ธ๋ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ๊ฐ ์ ๋๋ก ๋ ๊ฒ์
๋๋ค.
ย ์ด์ JDBC ๋๋ผ์ด๋ฒ์ ๋ํ ์ค์น๋ ๋๋ ๊ฒ์ด๋ฉฐ JDBC API
๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ์ผ๋ง ๋จ์์ต๋๋ค. ๋ค์ JDBC ํ๋ก๊ทธ๋จ ์์ฑ ๋จ๊ณ์์ ์์๋ณด๊ฒ ์ต๋๋ค.
ย JDBC ํ๋ก๊ทธ๋จ์ ํ๊ธฐ ์ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋นํด์ผ ํ ์์ฑ ๋จ๊ณ๊ฐ ์์ต๋๋ค. ๊ทธ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ด 4๊ฐ์ง ์ ๋๋ก ๋๋ ์ ์์ต๋๋ค.
- JDBC Driver ์ด๋ฆ ๋ฐ ์ ์ํ JDBC URL ์ค์
- JDBC Driver ๋ก๋
- JDBC URL๊ณผ ๊ณ์ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์
- JDBC ๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
ย JDBC ๋๋ผ์ด๋ฒ ์ด๋ฆ
์ ์ค์ ํ๋ ์ด์ ๋ JDBC๊ฐ ์ด๋ DBMS์ ๋ํ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋์ง ์์์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค. PostgreSQL๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ ๊ทธ์ ๋ง๋ ๋๋ผ์ด๋ฒ ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ย ์ ์ํ JDBC URL
์ ์ ์ํ DBMS์ ํธ์คํธ ์ฃผ์ ๋ฑ์ ์๋ฏธํฉ๋๋ค.
ย ์ด 2๊ฐ์ง ์ ๋ณด๋ฅผ ์ค์ ํ์๋ค๋ฉด, JDBC ๋๋ผ์ด๋ฒ ์ด๋ฆ์ ๊ฐ์ง๊ณ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋
ํด์ผ ํฉ๋๋ค.
ย ๋ก๋ํ ํ์๋ JDBC URL๊ณผ ๊ณ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ DBMS์ ์ ์ํ๋ ์์
์ ํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด
์ต๋๋ค.
ย Connection ๊ฐ์ฒด๋ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ํ๊ธฐ ์ํด ๊ผญ ํ์ํ ๊ฐ์ฒด์
๋๋ค. ์ด ๊ฐ์ฒด๋ฅผ ์ป์ด์๋ค๋ฉด ์ด๊ฒ์ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ง ์์
์ ์ํํ ์ ์์ต๋๋ค.
ย ์์ง ๊ตฌ์ฒด์ ์ผ๋ก ๋ณด์ง ์์์ง๋ง Connection ๊ฐ์ฒด ๋ด์ Statement๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ์ ์ฝ์
, ์์ , ์ญ์ ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
ย ์์์ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํ๊ธฐ ๋๋ฌธ์ JDBC์ ์ฐ๋ํ๋ ์์ ๋ฅผ ๋ค๋ฃจ์ด ๋ณผ ๊ฒ์ ๋๋ค.
ย ํ๋ก์ ํธ์ postgreSQLconnect/src/main/webapp
๊ฒฝ๋ก์ jdbcTest.jsp ํ์ผ์ ์์ฑํ์ฌ ์์ฑํด ์ค๋๋ค.
jdbcTest.jsp ํ์ผ
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*" %>
<%
Connection conn=null; //Connection ํ์
์ ๋ณ์๋ฅผ ์ ์ธ
String driver="org.postgresql.Driver";
//JDBC ๋๋ผ์ด๋ฒ ์ด๋ฆ์ ์ค์ ํจ. JDBC๋๋ผ์ด๋ฒ ์ด๋ฆ์ ์ฌ์ฉํ๋ DBMS๋ง๋ค ๋ค๋ฅด๋ฉฐ,
//์์ ์์ ๋ PostgreSQL์ ๊ธฐ์ค์ผ๋ก ํ JDBC์.
String url="jdbc:postgresql://localhost:5432/postgres";
//JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ URL์ ์๋งํจ. ์ด ์ฝ๋๋ localhost ์ฃผ์์
//5432 ํฌํธ๋ก ์ ์ํ๋ฉฐ, SID๋ช
์ postgres๋ฅผ ์ฌ์ฉํจ.
//PostgreSQL์ ์ค์นํ๊ฒ ๋๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก SID๋ช
์ด postgres๋ก ์ค์ ๋จ.
Boolean connect=false;
try{
Class.forName(driver); //JDBC ๋๋ผ์ด๋ฒ ์ด๋ฆ์ผ๋ก ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ํจ.
conn=DriverManager.getConnection(url,"์์ด๋ ์๋ฆฌ","๋น๋ฐ๋ฒํธ ์๋ฆฌ");
//์ค์ ํ๋ JDBC URL์ ์ด์ฉํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด์ด. (์ด ๋๋ DBMS
//์ ์ฌ์ฉํ๋ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๊ณ ์์ด์ผ ํจ.)
connect=true;
//๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋๋ก ์ฐ๊ฒฐ๋์ด Connection ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด connect ๋ณ์
//๊ฐ์ true๋ก ๋ณ๊ฒฝํ์ฌ PostgreSQL์ด ์ ๋๋ก ์ฐ๋๋์์์ ํ์ํจ.
conn.close(); //๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ์ ํด์ ํจ
}catch(Exception e){
connect=false;
e.printStackTrace();
}
//๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ ๋ Exception์ด ๋ฐ์ํ๋ฉด Exception ๋ด์ฉ์ ์ถ๋ ฅํจ.
//๋๋ผ์ด๋ฒ ์ด๋ฆ์ด ํ๋ฆฌ๊ฑฐ๋ ์ฃผ์์ ํฌํธ๋ช
๋๋ SID๋ช
์ด ์ ๋๋ก ์
๋ ฅ๋์ง ์์ผ๋ฉด
//Exception์ด ๋ฐ์ํจ.
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>
<%if(connect==true){ %>
์ฐ๊ฒฐ๋จ
<%}else{ %>
์ฐ๊ฒฐ์๋จ
<%} %>
</h3>
</body>
</html>
ย ์์๋๋ก ๋๋์ด์ ธ ์์ง๋ง ํ ํ์ผ ์์ ๋์ ์ด์ด์ ์์ฑํ๋๊ฒ์
๋๋ค.
ย ์์ ๊ฐ์ด jspํ์ผ ์์ฑ ํ Eclipse์ ์ฐ๊ฒฐ๋ Tomcat์๋ฒ๋ฅผ start์ํจ ํ jsp ํ์ผ์ ์๋ฒ์์ ์คํ์์ผ์ค๋๋ค.
ย ์๋์ ๊ฐ์ ํ๋ฉด์ ๋ง๋๋ค๋ฉด ์ฑ๊ณต์ ๋๋ค.
ย ์ค๋์ JDBC Driver๋ฅผ ์ฌ์ฉํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด์จ ํ Eclipse์ DBMS๋ฅผ ์ฐ๊ฒฐํด ๋ณด๋ ์์
์ ํด ๋ณด์์ต๋๋ค.
ย ๋ถ๋์ ๊ฐ๋จํ ์ฐ๊ฒฐ๋ง ํด ๋ณด์์ ๋ฟ DB๋ฅผ ํธ๋ค๋งํ๋ ์์ ์ ๋ฐ๋ก ์์์ต๋๋ค๋ง, ์ถํ์ ํฌ์คํ ์ ํตํด ์ปค๋ฅ์ ํ์ ์ฌ์ฉํ Eclipse์์์ DB ํธ๋ค๋ง๊น์ง ๋ค๋ค ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด์์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์ฝ๋ ๊ทธ๋๋ก ์จ์ ์นํ์ด์ง๋ ์ ๋๋ก ๋ด๋๋ฐ์
์ฐ๊ฒฐ์๋จ์ด๋ผ๊ณ ๋์์ ์ด๋ฐ๊ฒฝ์ฐ์๋ ๋ญ๊ฐ ์ฐ๊ฒฐ์ด ์๋์์๊น์?