2014-11-06 4 views
0

Я пытаюсь подключиться к базе данных на своем компьютере. Пароль к базе данных является корневым, а также пользователь. У меня есть разъем .jar файл в библиотеке проекта, у меня есть 7.0 JRE и JDK, таблица «Клиенты» в базе данных «Testing1» существует, и имеет 1 вход с 3-мя полями,Соединение с MySQL с JDBC

+--------------------+ 
| Tables_in_Testing1 | 
+--------------------+ 
| clients   | 
| esk    | 
| files    | 
+--------------------+ 

клиентов таблицы:

+----+------------------+-----------------------+ 
| id | PublicKey  | Email     | 
+----+------------------+-----------------------+ 
| 1 | PublicKeyNumber1 | [email protected] | 
+----+------------------+-----------------------+ 

А вот код:

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

class JDBCTest { 
    private static Connection con=null; 
    private static Statement st=null; 
    private static ResultSet rs=null; 

    public static void main(String args[])throws Exception { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Testing1?user=root&password=root"); 
     }catch (Exception e) { 
      System.out.println("e"); 
     } 
     try{ 
      st=con.createStatement(); 
      rs=st.executeQuery("select * from clients"); 
      while(rs.next()) { 
       System.out.println(rs.getString("Key")); 
      } 
     } 
     finally { 
      try { 
       if (rs != null) { 
         rs.close(); 
       } 
       if (st != null) { 
        st.close(); 
       } 
       if (con != null) { 
       con.close(); 
       } 
      }catch (SQLException e) { 
       System.out.println(e); 
      } 
     } 
    } 
} 

Все это возвращает ошибку (в Eclipse)

е

Исключение в потоке «основного» java.lang.NullPointerException на JDBCTest.main (JDBCTest.java:22)

Я предполагаю, что это потому, что нет никакой связи с databasae, так con - null ... но почему?

ответ

0

Я попробовал ваш код, и это работает для меня, только что сделал некоторые изменения в URL. Также исключите исключение при получении соединения.

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

public class JDBCTest{ 
    private static Connection con = null; 
    private static Statement st = null; 
    private static ResultSet rs = null; 

    public static void main(String args[]) throws Exception { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Testing1?user=root&password=root"); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
     try { 
      st = con.createStatement(); 
      rs = st.executeQuery("select * from users"); 
      while (rs.next()) { 
       System.out.println(rs.getString("Key")); 
      } 
     } finally { 
      try { 
       if (rs != null) { 
        rs.close(); 
       } 
       if (st != null) { 
        st.close(); 
       } 
       if (con != null) { 
        con.close(); 
       } 
      } catch (SQLException e) { 
       System.out.println(e); 
      } 
     } 
    } 
} 
+0

Что означает, что нет базы данных, такой как моя или есть какая-то другая ошибка? –

+0

@deerdeer просто запускается над программой и позволяет делиться выходом –

+0

Теперь он показывает: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver –

0

Вы заменяете System.out.println («e») на e.printStackTrace(), вы получите подробное исключение при создании соединения.
Это может быть ClassNotFoundException.

И, если пароль не подходит исключение, заменить

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Testing1?user=root&password=root"); 

С

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Testing1", "root, "root"); 
+0

После замены System.out.println ("e") на e.printStackTrace() Я все равно получаю ту же ошибку, к сожалению. –

+0

Я имел в виду, вы можете получить подробное исключение, чтобы мы могли знать, как решить проблему. – sanigo

+0

Уххх, я не знаю, что вы имеете в виду. Замена этого не имеет никакого значения. Я делаю какую-то глупую ошибку новобранец? –

Смежные вопросы