2012-09-03 3 views
0
내가의 연결 URL로, MySQL 데이터베이스에 연결을 시도하고

: 나는 데이터베이스와 연결하는 coorect MySQL의 드라이버를 다운로드 한자바 MySQL의 드라이버 및 ClassNotFoundException가

jdbc:mysql://127.0.0.1:3306/test 

, 그리고 수많은 시도 드라이버가 작동하지 않는 상태에서 드라이버를 설정하는 방법 지금까지 나는 다음과 같은 장소에서 JAR 파일을 배치 (그에 따라 PATH 환경 변수를 변경)

JRE/LIB/ 
JDK/LIB/ 
JRE/LIB/mysql-connector-java-5.1.21 
JDK/LIB/mysql-connector-java-5.1.21 

JAR 파일의 경로를 시도하는 것은되었습니다의 마지막 4+ 이상 위치 + mysql-connector-java-5.1.21-bin.jar

시간 StackOverflow에 대한 여러 질문과 솔루션과이 문제에 대한 온라인 자습서를 읽었으며 아무도이 문제를 해결하지 못했습니다.

나는

import java.sql.*; 
import java.util.Date; 

public class DatabaseHelper{ 

    private Connection   conn    = null; 
    private Statement   statement   = null; 
    private PreparedStatement preparedStatement = null; 
    private ResultSet   resultSet   = null; 
    private String    url     = null; 

    public DatabaseHelper(){ 
     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test"); 
      System.out.println("Driver Loaded!"); 
     }catch(SQLException e){ 
      e.printStackTrace(); 
     }catch(ClassNotFoundException e){ 
      e.printStackTrace(); 
     } 
    } 
} 

스택 트레이스

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:186) 
     at DatabaseHelper.<init>(DatabaseHelper.java:28) 
     at DatabaseTest.<init>(DatabaseTest.java:6) 
     at DatabaseTest.main(DatabaseTest.java:14) 
+0

정확히 코드를 실행하고 있습니까? 어떤 환경과 어떤 명령을? 그것은 실제로 사용되는 클래스 패스에 대한 더 많은 통찰력을 제공 할 것입니다. 그런데 이러한 DB 리소스를 인스턴스 변수로 선언하는 것은 대단히 나쁜 생각입니다. 그러지 마. 이것은 귀하의 구체적인 문제와 관련이 없습니다. – BalusC

+0

클래스 패스에 커넥터 jar 파일을 넣으십시오. jdk 및 jre lib 폴더는 클래스 경로에 적합하지 않습니다. lib라는 이름의 루트 클래스 경로 (.) 아래에 폴더를 만들고 거기에 놓습니다. 그런 다음'java -cp : : ./lib/mysql-connector- java-5.1.21.jar YourMainApp'가 작동해야합니다. jre 또는 jdk lib 폴더에 다른 lib를 배치하면 Java 버전을 업그레이드하기가 어려워집니다. – km1

+0

클래스 경로에 대해 자세히 알아야합니다. http://vafer.org/blog/20081203024812/ – km1

답변

1

당신은 클래스 패스에 JAR을 추가 할 필요가 연결을 시도하는 다음 코드를 사용하고있다.

내가 넣어 : 자바 응용 프로그램을 실행할 때, 간단히 말하면 다음과 같이

java -cp mysql-connector-java-5.1.21-bin.jar TheNameOfYourMainClass 
+0

안녕하세요 Resh32, 이미이 방법을 시도했지만 작동하지 않았습니다! – Jnanathan

+0

이것을 확인하고 클래스 경로 순서 문제가 아닌지 확인하십시오. http : // stackoverflow.com/questions/1585811/classnotfoundexception-com-mysql-jdbc-driver – Resh32

+0

나는이 질문을 이미 보았고 해결책이 작동하지 않는다고 제안했다. – Jnanathan

0

내가 프로젝트에서 작업하는 동안 전에이 문제를 직면, 내가 나를 위해 일한 무엇을 2 곳에서 jar 파일을 넣어이었다 Java JAVA_HOME/JRE_FOLDER/lib/ext/

다른 점은 프로젝트 내부에 libs 폴더를 만들고 그 안에 mysql jar를 넣는 것입니다. 그런 다음 jar 파일 (libs 폴더 안에있는 파일)을 프로젝트의 빌드 경로에 추가하십시오.

Eclipse를 사용하는 경우 jar를 건물 경로에 추가하려면 jar를 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 "빌드 경로"를 선택한 다음 "빌드 경로에 추가"를 선택하십시오.

호프가 도움이 되었으면

관련 문제