Только учусь, просьба помочь.
Есть такой кусок кода, после ввода пина пользователем. выдается соответтвующая информация. Как сделать обработчик ошибки, при вводе не существующего в базе данных пина.
String query = "SELECT * FROM employees WHERE pin = " + pin;
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
firstname = rs.getString(3);
lastname = rs.getString(4);
status = rs.getString(5);
System.out.println(firstname + " " + lastname + " " + status);
} // end while
Примечание:
Код неверный вообще, не то что так. Проверять надо rs.count или что-то в таком духе до всего и while пропустит первый результат всегда.
>>>
Как вы предлагаете его изменить? Код работает на данный момент и первую запись не пропускает.
Проблема в том, что мне нужен другой кусок кода, когда, при отсутвии такой записи пользователю бы сообщалось об этом, а не висла программа.
Примечание:
Проверку вводимых данных планирую сделать чуть позже.
Код выводит сообщение, но программа все равно зависает после ввода несуществующего пина
package bus;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQL {
public String firstname;
public String lastname;
public String status;
public int pin;
public void main(String args[]) {
Connection connection;
try {
// Название драйвера
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// Create a connection to the database
String serverName = "localhost";
String mydatabase = "testdb";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
String username = "testuser";
String password = "test623";
connection = DriverManager.getConnection(url, username, password);
System.out.println("is connect to DB" + connection);
String query = "SELECT * FROM employees WHERE pin = " + pin;
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
firstname = rs.getString(3);
lastname = rs.getString(4);
status = rs.getString(5);
}// end while
if (firstname == null)
System.out.println("No such employee found!");
else
System.out.println(firstname + " " + lastname + " " + status);
connection.close();
} // end try
catch (ClassNotFoundException e) {
e.printStackTrace();
// Could not find the database driver
} catch (SQLException e) {
e.printStackTrace();
// Could not connect to the database
}
}
void main() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Примечание:
ошибку нашел
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.