에러땜시머리아픈학생
10
2018-09-14 19:43:50
6
127

jdbc와 mysql연동 질문


안녕하세요, 현재 대학교 3학년생입니다

제목 그대로 jsp를 사용해서 mysql과 연동하는 예제를 공부하다 제 선에서는 해결 못하는 오류가 떠서 도움이 필요합니다 ㅠㅠㅠ


우선 사용한 예제는

----------------------------------------------------------------------------------------------

<%@ page contentType="text/html; charset=euc-kr" %>

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


<%

Connection conn=null;

Statement st =null;

ResultSet rs=null;

String a=null;


try {

Class.forName("org.gjt.mm.mysql.Driver");

} catch (ClassNotFoundException e) {

out.println(e);

}


try{

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/member?useUnicode=true&characterEncoding=euckr","root","multi");

} catch (SQLException e) {

out.println(e);

}


try{

st=conn.createStatement();

st.executeUpdate("create table woori(id char(10) primary key, name char(10))");

}catch (SQLException e) {

out.println(e);

}

try {

rs=st.executeQuery("select * from woori");

ResultSetMetaData rsmd = rs.getMetaData();

out.println("새로운 테이블이 생성되었습니다.<BR>");

out.println(rsmd.getColumnCount()+"개의 컬럼(필드)을 가지고 있으며<BR>");

out.println("첫번째 컬럼은 "+rsmd.getColumnName(1)+"<BR>");

out.println("두번째 컬럼은 "+rsmd.getColumnName(2)+"<BR>");

rs.close();

st.close();

conn.close();

}catch (SQLException e) {

out.println(e);

}

%>

<A href=main.htm>main으로</A>

----------------------------------------------------------------------------------------------

이렇게 이고 오류 메세지는

이렇습니다...


sql버전은 서버 8.0, 커넥터 j 8.0이고 톰캣9, 자바 개발키트는 최신버전 사용중입니다.

혹시 환경변수 문제일 수도 있어서 환경변수나 아님 해결법이 정말 절실합니다 ㅠㅠㅠㅠ

고수님들 부탁드려요!!

0
0
  • 답변 6

  • rezigrene
    425
    2018-09-14 22:04:10

    오류메세지의 말에따르면

    23번째행

    st=conn.createStatement();

    에서 문제가 발생했고

    종류는 NullPointerException 이라네요.


    이전에 다른오류로 conn값을 못얻은듯하니

    그부분을 확인해보시면 될것같습니다.

    0
  • 야쿠르트
    424
    2018-09-14 22:04:59

    conn=DriverManager.getConnection()

    다음에

    System.out.println(conn);

    프린트 해보세요.


    0
  • rezigrene
    425
    2018-09-14 22:08:24 작성 2018-09-14 22:11:17 수정됨
    추가로 에러내용을 화면에 출력하고픈의도로
     out.println(e) 를 쓰신거라면
    모든에러를 의도한대로 출력할수있도록
    SQLExeption 대신 Exception을 쓰시는게 좋아보입니다.

    아니면 try catch를 모두 제거해서 먼저발생한에러가 제대로 먼저현재페이지처럼나오도록 해도 되구요
    0
  • 에러땜시머리아픈학생
    10
    2018-09-15 00:06:15

    넵 위에 답변 달아주신 세분께서 말씀하신대로 해본 결과

    이렇게 mysql 드라이버를 못찾는다는 오류가 아마 원인인것 처럼 나왔습니다.

    이럴 경우 Class.forName("여기부분") 에 새로운 코드를 넣어야 될까요??

    0
  • rezigrene
    425
    2018-09-15 02:27:21 작성 2018-09-15 02:30:31 수정됨

    드라이버가 문제인듯하니 검색해 봅니다.

    org.gjt.mm.mysql.Driver


    나오는 게시글들이 2007-2011년이네요.

    찾으신 샘플이 너무옛날것을 쓰신듯합니다


    https://stackoverflow.com/questions/29653862/cant-find-jdbc-driver

    검색결과 나온 이글에 따르면

    com.mysql.jdbc.Driver

    를 쓰라고 하네요

    0
  • 에러땜시머리아픈학생
    10
    2018-09-15 17:23:27

    답변 해주신 모든 분들께 감사드립니다!!

    결과부터 말하자면 문제는 해결 됬습니다!!!!!!

    어흙마이깟...


    원인은 경로에 있었습니다.

    mysql버전과 jdk버전, 톰켓 버전은 모두 올바르게 되었었지만

    java설치 경로가 기본적으로 program files(x86)에 설치되게 되어있었는데

    이걸 program files로 바꾸고 나니 정상적으로 해결 되었습니다 ㅠㅠㅠ


    2주동안 고생하며 고민하다 올린 게시물에 이렇게 답변 달아주셔서 모두 감사드려요!

    추가로 드라이버 클래스 네임을 org.gjt.mm.mysql.Driver가 아닌 com.mysql.jdbc.Driver로

    바꿔야되는 문제도 있어서 도움받아 해결했습니다.

    모두 복받으세요!!!!!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.