Эффективный способ ResultSet GetString с проверкой isEmpty Java - PullRequest
0 голосов
/ 13 апреля 2020

In Approach-1 execute rs.getString ("COL_NAME") дважды (избыточность процесса).

//Approach 1
if (!StringUtils.isEmpty(rs.getString("COL_NAME"))) {
 testData.setTestNumber(rs.getString("COL_NAME").trim());
}

In Approach-2 мы инициализируем строку (mmy initialization).

//Approach 2
String value = rs.getString("COL_NAME");
if (!StringUtils.isEmpty(value)) {
 testData.setTestNumber(value.trim());
}

Какой из методов будет наиболее эффективным? Есть ли какой-либо другой лучший способ сделать нулевую проверку и эффективно выполнить операцию.

1 Ответ

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

Очевидно, более эффективно избегать повторного вызова ResultSet.

В вашем примере кода эффективность, скорее всего, здесь не будет проблемой. И здесь нет никакого пути к драматическому прорыву в эффективности. Таким образом, лучше сделать код проще для чтения и обслуживания, отделив код извлечения базы данных от других бизнес-логи c.

Итак, получите значения из вашей базы данных.

String customerName = myResultSet.getString( "cust_name_" ) ;

Сделайте там базовую c проверку нуля там, где это необходимо.

String customerName = Objects.requireNonNull( myResultSet.getString( "cust_name_" ) ) ;

Затем выполните свою бизнес-логику c. Нет необходимости в библиотеке StringUtils . Современные версии класса String предлагают методы isBlank и isEmpty.

if ( customerName.isEmpty() || customerName.isBlank() ) {…}
...