2013-06-24 3 views
0

Я сделал программу, которая делает простой графический интерфейс для формы входа. Просто для тестирования я сделал это, когда вы нажмете кнопку «Войти», Java должна просто распечатать результаты запроса из базы данных MySQL. В MySQL у меня есть схема базы данных, называемая «test», и таблица под названием «login». В таблице входа только 1 строка: «1, angelo, password» под столбцами: loginID, Username и Password.Моя программа Java не печатает результаты запроса, который я сделал для MySQL

Имя пользователя MYSQL - это корень. Хост - это локальный порт 3306. Сервер MySQL в настоящее время запущен.

У меня есть «mysql-connector-java-5.1.25-bin» в моей папке «Extra Classpath» для DrJava (это программное обеспечение, которое я использую для программирования).

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.sql.SQLException; 

(КОД ДЛЯ GUI ЗДЕСЬ)

   Connection connection = null; 

try { 
    // Load the JDBC driver 
    String driverName = "com.mysql.jdbc.Driver"; // MySQL MM JDBC driver 
    Class.forName(driverName); 

    // Create a connection to the database 
    String serverName = "localhost:3306"; 
    String mydatabase = "test"; 
    String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url 
    String username = "root"; 
    String password = ""; 
    connection = DriverManager.getConnection(url, username, password); 

        Statement st = connection.createStatement(); 
       ResultSet rs = st.executeQuery("select * from login"); 

       while(rs.next()) { 
        System.out.println(rs.getString("username")); 
       } 
       st.close(); 
       rs.close(); 
       connection.close(); 


} catch (ClassNotFoundException e) { 
    // Could not find the database driver 
} catch (SQLException e) { 
    // Could not connect to the database 
} 

Всякий раз, когда я бегу это нет никаких ошибок, это просто, что ничего не печатает.

EDIT: Когда я добавляю e.printStackTrace я получаю эту ошибку:

java.lang.ClassNotFoundException 
at edu.rice.cs.plt.reflect.PathClassLoader.findClass(PathClassLoader.java:148) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at swing_sample$handler.actionPerformed(swing_sample.java:108) 
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
at java.awt.Component.processMouseEvent(Unknown Source) 
at javax.swing.JComponent.processMouseEvent(Unknown Source) 
at java.awt.Component.processEvent(Unknown Source) 
at java.awt.Container.processEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Window.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$200(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

Основываясь на том, что я отправил вы можете мне сказать, что я делаю не так? Благодарю.

+0

Есть ли что-нибудь в 'test.login'? –

+2

Вы уверены, что это не ошибка? Добавьте 'e.printStackTrace()' в блок cath –

+0

Я добавил e.printStackTrace(); и изменил rs.getStr на («Username»). Я точно знаю, что что-то есть в моей схеме тестовой базы данных в таблице входа. Я отправил ошибки, которые получаю, когда запускаю код. –

ответ

1

вы, кажется, используя данные строки для печати в следующем заявлении:

System.out.println(rs.getString("angelo")); 

вам нужно дать имя столбца или индекс столбца rs.getString()

, например:

System.out.println(rs.getString("user_name")); 

или

System.out.println(rs.getString(1));// assuming what you are lookin for is found in the first column 
+0

Спасибо, что указали это. Однако даже после фиксации этого и добавления e.printStackTrace(); Теперь у меня проблемы. –

+0

@AngeloRivera вы добавили файл jar-файла драйвера MySQL в путь класса? – codeMan

0
  1. попробуйте распечатать URL после установки переменной URL Это SHLD выглядеть примерно так: JDBC: MySQL: // локальный: 3306/DbName

  2. Как отметил codeMan, пожалуйста, используйте название столбца данных, в вашем случае замените angelo на Username.

0

проблема с загрузкой JDBC Driver ... же error происходит в моем приложении, когда я не добавить mysql-connector.jar к моим build path. Кажется, ваш classpath настроен неправильно. Вы добавили mysql-connector.jar в build path?

+0

У меня есть «mysql-connector-java-5.1.25-bin.jar» в моей папке для «Extra Classpath» в DrJava. Есть ли что-то еще, что мне нужно сделать? (например, редактируйте путь сборки в коде или где-то еще?) –

+0

ваш код работает для меня, когда я добавляю mysql-connector.jar ... уверен, что ваш mysql-connector-java-5.1.25-bin - это файл jar, а не zip-файл ... если это zip-файл, тогда сначала разархивируйте его и дайте местоположение файла jar на ваш дополнительный путь класса –

0

Ваш код выглядит правильно, я думаю, что ваш код попытается загрузить некоторые классы, которых нет в вашем классе, убедитесь, что все классы зависимостей должны находиться в вашем пути к классу.

clean code and build your project . 

это может решить вашу проблему, решить вашу проблему.