Как вы могли бы улучшить следующий метод? - PullRequest
0 голосов
/ 17 апреля 2020

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

 public List getPlanets(DataSource d, String galaxy) throws SQLException
{
   Connection c;
   Statement s;
   ResultSet rs;
   Planet p;

   c = d.getConnection();
   s = c.createStatement();
   rs = s.executeQuery("select * from planets where galaxy = '" + galaxy + "'");

   List l = new ArrayList();

   while (rs.next())
   {
      p = new Planet();

      p.setName(rs.getString("name"));
      p.setDiameter(rs.getString("diameter"));
      p.setMass(rs.getString("mass"));
      l.add(p);
   }

   return l;
}

1 Ответ

1 голос
/ 17 апреля 2020

Если вы знаете, что вы получаете только 3 указанных c элемента из запроса - выберите их и не используйте подстановочный знак ("*") в запросе. Помните, что этот символ означает «получить все результаты»

Подстановочный знак может подойти, если результаты невелики - но представьте, если в строке 1000 точек данных - вы получаете все из них и затем используете только 3.

rs = s.executeQuery("SELECT name, diameter, mass FROM planets WHERE galaxy = '" + galaxy + "'");

Также - я согласен с @AhmerMH в отношении параметризованного запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...