우선 로컬에서
import java.sql.*;
public class TestJdbc
{
public static void main(String args[]) throws Exception
{
String url = "jdbc:postgresql://localhost:5432/guest";
String user = "guest";
String pwd = "***";
Class.forName("org.postgresql.Driver");
Connection con;
Statement stmt;
ResultSet result;
int v_num;
String v_id;
String v_passwd;
con = DriverManager.getConnection(url, user, pwd);
stmt = con.createStatement();
result = stmt.executeQuery("SELECT num, id FROM test");
while (result.next())
{
v_num = result.getInt("num");
v_id = result.getString("id");
System.out.println("NUM: " + v_num + " ID: " + v_id);
}
stmt.close();
con.close();
}
}
이 프로그램을 구동시키면 아무런 문제 없이 돌아갑니다.
(출력:
NUM: 1 ID: user1
NUM: 2 ID: user2 )
그런데요.. 서블릿에서 비슷한 내용을 출력하라고 하면 자꾸만
드라이버 로딩에서 예외가 발생하네요.. ㅠ.ㅠ
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class TestJdbc extends HttpServlet
{
public void init(ServletConfig cfg)
throws ServletException
{
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String url = "jdbc:postgresql://localhost:5432/guest";
String user = "guest";
String pwd = "***";
out.println("Hello World ^^<br>");
try {
//Class.forName("org.postgresql.Driver");
Class.forName("postgresql.Driver");
} catch (ClassNotFoundException cnfExc) {
out.print(cnfExc.getMessage() + "<br>");
}
Connection con;
Statement stmt;
ResultSet result;
int v_num;
String v_id;
String v_passwd;
try
{
con = DriverManager.getConnection(url, user, pwd);
stmt = con.createStatement();
result = stmt.executeQuery("SELECT num, id FROM test");
while (result.next())
{
v_num = result.getInt("num");
v_id = result.getString("id");
out.println("NUM: " + v_num + " ID: " + v_id);
}
stmt.close();
con.close();
} catch (SQLException sExc) {
out.println(sExc.getMessage());
}
out.close();
}
}
소스를 이렇구요.. 실행시키면 컴파일은 잘되고.. 출력은
Hello World ^^
postgresql.Driver
이렇게 나오죠..
답변 좀 달아주십시요 ^^*
|