JSP와 MySQL 연동해서 사용하는 방법을 알고 싶습니다.

naippgi의 이미지

리눅스에서 아파치와 톰캣 설치해서 JSP 공부를 하는데요..
MySQL을 설치해서 사용하고자 하는데.. 책에는 PHP와 함께 사용하는
방법만 나와있어서요..
JSP와 MySQL 을 사용할수있는 방법은???
꼭 그렇게 사용하는 방법을 알고 싶은데요..
자세하게 방법을 설명해 주신다면 ...좋겠습니다...
꼭.. 부탁드립니다.

dalgarak의 이미지

Java-MySQL을 연결할 때,

MySQL용 JDBC인 Connector/J 를 사용하면 됩니다.

MySQL 홈에서 Connector/J 를 받은 후,

mysql-connector-java 로 시작하는 jar 파일을

자신의 시스템에 설치된 $JAVA_HOME/jre/lib/ext 안에 복사하시면 됩니다.

자세한 내용은 README를 읽어보시길..

naippgi의 이미지

복사해서 넣고.. 조금만 더 자세히 설명해주시면..
고맙겠습니다..
제가 초보자라서... 조금만 자세히 설명해 주세요...

dalgarak의 이미지

일단, mysql.com에서 Connector/J를 받아와야 합니다.

Connector/J는 MySQL을 위한 JDBC API라고 보시면 됩니다.

현재 Stable 버전이 3.0.7인데, 이를 받아와 셸에서,

$ tar xvzf mysql-connector-java-3.0.7-stable.tar.gz

라고 명령을 주면 mysql-connector-java-3.0.7-stable 디렉토리 내에
mysql-connector-java-3.0.7-stable-bin.jar 파일이 있는것을 확인 할 수 있을것입니다.

그 다음 자신의 JAVA_HOME, JRE_HOME의 경로를 알아야 하는데, 이는 다음의 명령어로 확인 할 수 있습니다:

$ echo $JAVA_HOME
$ echo $JRE_HOME

자신이 설치했던 자바의 위치가 파악되면, JRE가 설치된 디렉토리/lib/ext 디렉토리에 위의 mysql-connector-java-3.0.7-stable-bin.jar 파일을 복사해야 합니다.

만약 자신의 JRE가 있는 디렉토리가 /usr/lib/java/jre/ 라면 /usr/lib/java/jre/lib/ext 디렉토리 안에 복사해야 겠지요.

그렇게 복사를 하면 일단 JDBC 드라이버가 설치된것입니다.

설치된 드라이버를 확인하기 위해서는 다음의 자바 코드를 컴파일/실행해보면 됩니다.

import java.sql.*;

public class jdbc_test {
        public static void main(String args[]) {
                try {
                        Class.forName("com.mysql.jdbc.Driver");
                        System.out.println("JDBC Connection : Success");
                }
                catch(ClassNotFoundException e) {
                        System.out.println("JDBC Connection : Failure");
                        System.out.println(e.getMessage());
                }
        }
}

위의 소스로 확인할 수 있는것은 JDBC가 잘 설치되었는지 안되었는지 확인하는 정도 입니다. MySQL을 띄워놓고 직접 JSP 코드를 짜보는것이 좋겠지요.

앞서 말했지만, Connector/J의 압축을 풀게 되면 안에 README 문서가 들어있고, 안에 설치를 비롯한 약간의 설명이 들어있습니다. 이를 읽어보시는것이 가장 좋을것입니다.

naippgi의 이미지

JAVA_HOME은 알았는데요.. JRE_HOME는 없는데... 다운받아서 깔아줘야 하는건가요??
JRE를 다운받을려면 정확하게 어떻게 해야하는지요.. 그냥 썬사에 들어가서 JRE를 찾아서 다운받는건가요??
잘 모르겠어서요... ㅤJRE가 꼭 있어야 되는것 같은데... MySQL연동시에...
다시한번만... 답변을 부탁드립니다... 꼭이요...

그리고..
감사합니다..

naippgi의 이미지

JRE다운받아서 설치하고... ㅤConnector/J 를 맞게 넣은후에
자바파일 (jdbc_test.java)을 만들어서 컴파일을 했습니다.
실행시키는데 파일을 찾을수 없다는 에러메시지가 뜹니다.

ROOT>java jdbc_test
java.lang.ClassNotFoundException : jdbc_test
at java.lang.Class.forName(Class.java:native)
at java.lang.Class.forName(Class.java:52)

참고로.. /etc/profile에
JRE_HOME과
CLASSPATH를 설정해주었습니다.
(클래스패스는 어떻게 해야되는지 몰라서
"./$JRE_HOME/lib/ext/mysql-connector-java-3.0.7-stable-bin.jar"로 했습니다.

문제해결을 할수 있는 방법을 알려주시면 감사하겠습니다.

naippgi의 이미지

도움을 주셔서 감사합니다.
Connector/J 를 다운받아서
apache/libexec 디렉토리에 넣고 압축풀고
환경설정파일(/etc/profile)에 패스설정해주고 ...
했습니다.

dalgarak의 이미지

답변이 이미 많이 늦어버린것 같습니다. 죄송합니다 :oops:

CLASSPATH에는 반드시 ".", 즉, 자기 현재 위치를 가리키는 것이 포함되어 있어야 합니다. 그래야 현재 실행할 자바 파일의 메인 클래스를 찾을 수 있기 때문이죠.

그리고, JDK를 설치한 경우 대개 JRE가 포함되어 있습니다. 다만 환경 변수에 JRE_HOME이 추가 되지 않았을 뿐 입니다. 추가로 설치하실 필요는 없습니다.

앞에서 제가 $JAVA_HOME/jre/lib/ext 안에 넣어야 한다고 했던 것은, 새로운 클래스 파일을 추가할 때 권장하는 방법입니다. 이렇게 했을 경우 CLASSPATH 값을 추가로 변경할 필요가 없기 때문입니다. (JAVA_HOME, JRE_HOME 환경변수가 정확하게 설정 되어 있으면 CLASSPATH 환경변수를 따로 등록 할 필요가 없습니다) 나중에 해당 클래스가 버전 업이 되었을 경우 관리도 편하고 말이죠.

예를 들어 JAVA_HOME 환경 변수가 /usr/lib/java 로 되어 있다면, SUN이나 Blackdown의 J2SDK 1.4.1의 경우 JRE_HOME의 위치는 /usr/lib/java/jre에 위치하게 됩니다. IBMJava2의 경우 이 경로 위치가 약간씩 다르다고 합니다만, 위의 예 에서 mysql JDBC 드라이버는 /usr/lib/java/jre/lib/ext/ 에 복사하면 되는 것입니다.

위에서 권장한 경로 말고도, 여러 다른곳에 설치해도 됩니다. 다만, CLASSPATH를 다음과 같이 지정해줘야 할 것입니다.

예를 들어 JAVA_HOME 환경 변수의 값이 /usr/lib/java 이고, 기본 클래스는 /usr/lib/java/lib에 있고, Connector/J를 /usr/lib/ 에 설치했다면,

$ export CLASSPATH=".;/usr/lib/java/lib;/usr/lib/mysql-connector-java-3.0.7-stable-tar.gz"

...이렇게 설정해주어야 할 것입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.