Люди, кажется, пренебрегают более масштабными проблемами в вашем коде.Существуют стандарты, которым нужно следовать, например, использование заглавных букв и т. Д., Но в целом у вас есть некоторые более серьезные проблемы.
Не следует создавать ошибочные экземпляры initSql
, поскольку это HttpServlet
, это просто не имеет смысла.У вас также есть статические / нестатические ссылки на поле Connection
, когда вам это не нужно.Для начала измените initSql#init
на значение Connection
, и, хотя я обычно не рекомендую использовать статический метод таким образом, сделайте сам метод статическим:
//returns a connection, requires no class instance
public static Connection init(ServletConfig config) { ... }
Оттуда мы теперь можем получитьЭкземпляр соединения, вызвав этот метод:
Connection con = initSql.init();
В целом, вы должны иметь подходящий класс или дизайн для обработки этого, но для простого обучения это "хорошо".
Во-вторых, вы 'не совсем правильно используете ResultSet
.#next
определит, есть ли доступная строка, на которую можно указать в результатах SQL, и, если это так, переместит маркер на следующую строку.Вы можете использовать его, чтобы проверить, можете ли вы получить результаты:
ResultSet set = /* some sql query */;
String someField;
if (set.next()) {
//gets the value of the column "my_field"
someField = set.getString("my_field");
} else {
//no results!
someField = null;
}
В качестве альтернативы, если вы искали несколько результатов, вы можете зациклить #next
while (set.next()) {
//just one value out of many
String myField = set.getString("my_field");
}
В этомВ случае использования можно проверить, существует ли строка, но я бы лично проверил что-то вроде пользовательских разрешений или чего-то подобного.Если бы вы полагались на подобный код для чего-то чувствительного, вы могли бы раскрыть то, что вам не нужно.
В целом, я бы немного больше поработал над вашей логической структурой кода и, возможно, рассмотрю некоторые изосновы Java и общие стандарты кодирования (для этого у Google и Oracle есть хорошие руководства).