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에서의 접속 허용하기)
'JSP & Servlet' 카테고리의 다른 글
JSP에서 JSTL의 forTokens 태그의 간단 예제 (0) | 2018.05.05 |
---|---|
JSP에서 MySQL을 이용하여 Database Connection Pool(DBCP) 구현하기 (0) | 2018.05.02 |
Servlet에서 초기화 파라미터 사용하기 (0) | 2018.04.26 |
meta 태그를 이용해서 일정 시간 경과하면 특정 웹 페이지로 자동 이동하기 (0) | 2018.04.24 |
JSP에서 EL(Expression Language)이 값을 출력하지 못할 경우 (0) | 2018.04.23 |