2016-08-17 1 views
0

나는 바람둥이에서 달리고있는 JSP로 mysql 데이터베이스에 간단한 예제 연결을 시도한다. 나는 응답을 아래의 코드를 실행바람둥이 jsp에서 작동하는 JDBC 드라이버를 얻을 수 없다

: JDBC에 대한 찾을 수 없습니다 적합 드라이버 : mysql을 : // localhost를/TestingDB

<HTML> 
    <HEAD><TITLE>Testing mysql</TITLE></HEAD> 
<BODY> 

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

<% 
     String url = "jdbc:mysql://localhost/TestingDB"; 

     String user = "mysql"; 
     String password = "pwd"; 

    try { 
     Connection con = DriverManager.getConnection(url, user, password); 
     out.println("Success"); 
     Statement st = null; 
     ResultSet rs = null; 
     st = con.createStatement(); 
     rs = st.executeQuery("SELECT * FROM TestTable"); 
     while(rs.next()){ 
      out.println(rs.getString("String1")); 
     } 

    } catch (Exception e) { 
     out.println(e.getMessage()); 
      e.printStackTrace(); 
     } 
%> 

</BODY> 
</HTML> 

내가 MySQL의 커넥터 - 자바-5.1.xx-함을 뒀다. jar 파일을 CATALINA_HOME/lib 디렉토리에 넣고 작동하지 않으면 {appname}/WEB-INF/lib 디렉토리에 넣으려고했습니다. 각 사이

나는 다시 시작한 바람둥이 서비스바람둥이다시 시작를 사용해보십시오.

독립 실행 형 Java 클래스에서 (거의) 동일한 코드를 사용하면 데이터베이스에 액세스 할 때 문제가 없어야합니다.

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
import java.sql.ResultSet; 

class JDBCTest { 

    private static final String url = "jdbc:mysql://localhost/TestingDB?useSSL=false"; 

    private static final String user = "mysql";  
    private static final String password = "pwd"; 

    public static void main(String args[]) { 
      try { 
      Connection con = DriverManager.getConnection(url, user, password); 
      System.out.println("Success"); 
      Statement st = null; 
      ResultSet rs = null; 
      st = con.createStatement(); 
      rs = st.executeQuery("SELECT * FROM TestTable"); 
      while(rs.next()){ 
        System.out.println(rs.getString("String1")); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

은 정말 아이디어가 부족 해요. 모든 도움을 환영합니다!

답변

3

나는 일을해야 CATALINA_HOME/lib 디렉토리

에 MySQL의 커넥터 - 자바-5.1.xx-bin.jar를 넣어 가지고,하지만 당신은 그것을 테스트하기 전에 Tomcat을 다시 시작해야합니다.

그리고 작동하지 않을 때 {appname}/WEB-INF/디렉토리에 넣으려고했습니다.

틀린. {appname}/WEB-INF/lib 디렉토리 여야합니다.

이 데이터베이스를 META-INF/context.xml의 리소스로 정의하고 java:comp/env/jdbc 네임 스페이스의 JNDI 조회를 통해 Tomcat에서 가져와야합니다. 당신이하는 일은 가난한 행동입니다.

+0

감사합니다. tomcat inbetween를 다시 시작했고 그 디렉토리에서 _/lib_를 놓쳤습니다. 나는이 재료에 초보자이고 튜토리얼을 따라왔다. 나는 당신이 그것을 잘 살펴볼 나쁜 습관이라고 말한다. (특히 지금은 효과가 없다.) – oht

+0

다른 웹 응용 프로그램을 만든 후 제대로 작동하지만 실제로 (왜 나는 그것이 관련 있다고 가정 할 수 있음) 모르겠다. 따라서 올바른 방법으로이 함정을 없애고 올바른 답을 선포합니다. – oht

-1

URL 액세스에 포트를 넣는 것을 잊었습니다.

JDBC : mysql을 : // localhost를 : 여기에

는 연결 URL에 대한 간단한 예입니다 3306/TestingDB;

+0

그러나 자바 클래스에서 작동하므로 문제가되지 않습니다. 내가 그것을 추가하려고했지만 아무런 차이가 없으므로 실제로 그것을 다시 제거했습니다. – oht

+0

포트가 기본값 인 경우이 포트를 넣을 필요는 없습니다. – EJP

관련 문제