JSP(Java)에서 MySQL 연동하기


Java에서 MySQL 연동하는 코드 자체는 단순하고 간단하다. 

 ① 연동을 위해 필요한 2개의 클래스 : Connection, DriverManager

 ② 필요한 클래스를 import 한다.

    <%@page import="java.sql.DriverManager"%>

    <%@page import="java.sql.Connection"%>

 ③ 연동을 위해 필요한 .jar 라이브러리(mysql-connector-java-5.1.40-bin.jar)를 톰캣이 설치된 디렉토리의 lib 폴더에 복사해 둔다. 혹은 해당 프로젝트의 \WebContent\WEB-INF\lib 아래에 복사해 둔다.

     예) D:\apache-tomcat-7.0.69\lib에 복사해 둔다.


코드는 아래와 같다.


<%@page import="java.sql.DriverManager"%>

<%@page import="java.sql.Connection"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

Connection conn = null;

      

                //localhost는 MySQL이 설치된 곳의 IP

                //mysql : DB 명

                //3306 : MySQL 접속을 위한 디폴트 포트

String url = "jdbc:mysql://localhost:3306/mysql";

String id = "root";                     //MySQL에 접속을 위한 계정의 ID

String pwd = "xxxxxxx";            //MySQL에 접속을 위한 계정의 암호

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection(url, id, pwd);

out.println("<h1>MySQL DB 연결 성공</h1>");

%>

</body>

</html>


실행 중에 만일 아래와 같은 에러가 발생한다면 이 문제는 위 ③을 하지 않음으로 인한 문제이다. ③과정을 처리하면 된다.


org.apache.jasper.JasperException: An exception occurred processing JSP page /connect.jsp at line 19


18:

19: Class.forName("com.mysql.jdbc.Driver");

20: conn = DriverManager.getConnection(url, id, pwd);

21:


... 중 략 ...


javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver


위의 코드는 로컬 상에서(JSP가 구동되는 곳과 MySQL이 설치된 곳이 동일 컴퓨터일 경우)의 MySQL 연동하는 법이다.

그런데 개발을 할때 원격의 서버에 있는 MySQL과 연동하면서 개발하는 경우가 있다. 이때는 아래 코드를 


String url = "jdbc:mysql://localhost:3306/mysql";


다음과 같이 IP 주소 혹은 도메인 이름으로 접속해야 한다.

String url = "jdbc:mysql://192.168.x.x:3306/mysql";


이렇게 MySQL에 접속을 시도했을 때 다음과 같은 에러가 발생한다면 


org.apache.jasper.JasperException: An exception occurred processing JSP page /connect.jsp at line 21


19:

20: Class.forName("com.mysql.jdbc.Driver");

21: conn = DriverManager.getConnection(url, id, pwd);

22:


...중 략...


javax.servlet.ServletException: java.sql.SQLException: null,  message from server: "Host 'xxxx' is not allowed to connect to this MySQL server"


이 에러는 MySQL이 외부 접속을 허용하지 않음으로 인한 에러이다.

이 문제에 대한 해법은 아래 링크 참조


MySQL의 외부 접속 허용하기(외부 IP에서의 접속 허용하기)



+ Recent posts