2016-07-27 2 views
-3

В java я использовал оператор Prepared для получения значений из базы данных. Здесь я использовал индекс, а затем я связать значения также, я использовал следующий запросЕсть ли какой-либо jar для выполнения запросов sql быстрее в java?

Select pname from project where pid="12547"; 

Как это мне нужно принять около 3000 «PNAME» из проекта таблицы. Для этого выполнения требуется больше времени. Есть ли какой-либо jar для выполнения запросов sql быстрее в java?

+2

use 'select pname из проекта, где pid IN (xx, yy, ...)'? –

+0

Нет такой банки. Как было предложено в предыдущем ответе, вы можете уменьшить количество запросов. Если по какой-то причине вам необходимо последовательно выполнять эти вызовы, тогда вам нужно будет настроить БД (добавление индекса на pid в случае его не первичного ключа и т. Д.). –

+0

Мне нужно выполнить это утверждение из java, а также как связать значения внутри этого [IN()] с помощью подготовленного оператора. потому что значения ** динамические ** .. – karthik

ответ

3

Почему вы выполняете индивидуальные запросы для этих 3000 pid. Если вы уверены, что вы, чтобы выполнить что много запросов, которые вы можете переключиться на любой из них, который лучше всего подходит для вашей логики:

select pname from project where pid BETWEEN 1000 and 4000; 

select pname from project where pid IN (1000, 1001, ...); 

select pname from project where pid > 2000 and pid < 5000; 

Вы можете использовать их в своих где предложение изменить свой SQL запрос

Operator Description 
=   Equal 
<>  Not equal. Note: In some versions of SQL this operator may be written as != 
>   Greater than 
<   Less than 
>=  Greater than or equal 
<=  Less than or equal 
BETWEEN Between an inclusive range 
LIKE  Search for a pattern 
IN  To specify multiple possible values for a column 

EDIT

Если значения являются динамическими, то

String selectSQL = "select pname from project where pid IN(?, ?);"; 
dbConnection = getDBConnection(); 
preparedStatement = dbConnection.prepareStatement(selectSQL); 
preparedStatement.setInt(1, 2000); 
preparedStatement.setInt(2, 5000); 

// execute select SQL stetement 
ResultSet rs = preparedStatement.executeQuery(); 
+0

Мне нужно выполнить этот оператор из java, а также как связать значения внутри этого [IN()] с помощью подготовленного оператора. потому что значения ** динамические ** .. – karthik

+0

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

+0

Спасибо за этот ответ, но там вы упомянули конкретно два вопроса. на самом деле этот счет также должен быть динамическим, попробуйте помочь мне ... – karthik