какой из них будет лучше между этими двумя? - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь получить COUNT (*) с доски,

Но мне интересно, какая производительность будет лучше из следующих кодов:

Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("SELECT COUNT(*) FROM board_*** WHERE article_category = " + foo);

ИЛИ

PreparedStatement pstmt = connection.prepareStatement("SELECT COUNT(*) FROM board_*** WHERE article_category = ?");
pstmt.setInt(1 , foo);
ResultSet rs = pstmt.executeQuery();

Трудно решить ..

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Всегда полезно использовать PreparedStatement.Потому что, если безопаснее (от внедрения SQL) и с точки зрения производительности, это намного быстрее, потому что, когда вы используете привязку переменной, сервер базы данных сам кеширует параметры и повышает производительность запросов.

Если вас больше интересует вот хорошая статья для чтения

http://www.oracle.com/technetwork/database/performance/designing-applications-for-performa-131870.pdf

0 голосов
/ 23 ноября 2018

PreparedStatement - лучший способ сделать это.Эта статья должна помочь вам понять разницу между этими двумя понятиями: https://www.journaldev.com/2489/jdbc-statement-vs-preparedstatement-sql-injection-example

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