Вы должны сказать, какие СУБД вы используете. Mysql и sqlite поддерживают директиву LIMIT
, тогда как другие системы могут поддерживать или не поддерживать TOP
, FIRST
или другие подобные директивы.
ОБНОВЛЕНИЕ. Посмотрите, как это поддерживаются различными системами РСУБД. См. Метод getLoadSomeRowsSql()
в файле infinispan's TableManipulation.java
.
Здесь, в случае, если ссылка перестает работать:
switch (getDatabaseType()) {
case ORACLE:
loadSomeRowsSql = String.format("SELECT %s, %s FROM (SELECT %s, %s FROM %s) WHERE ROWNUM <= ?", dataColumnName, idColumnName, dataColumnName, idColumnName, getTableName());
break;
case DB2:
case DB2_390:
case DERBY:
loadSomeRowsSql = String.format("SELECT %s, %s FROM %s FETCH FIRST ? ROWS ONLY", dataColumnName, idColumnName, getTableName());
break;
case INFORMIX:
case INTERBASE:
case FIREBIRD:
loadSomeRowsSql = String.format("SELECT FIRST ? %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
break;
case SQL_SERVER:
loadSomeRowsSql = String.format("SELECT TOP (?) %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
break;
case ACCESS:
case HSQL:
case SYBASE:
loadSomeRowsSql = String.format("SELECT TOP ? %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
break;
default:
// the MySQL-style LIMIT clause (works for PostgreSQL too)
loadSomeRowsSql = String.format("SELECT %s, %s FROM %s LIMIT ?", dataColumnName, idColumnName, getTableName());
break;
}
Какие базы данных? Существуют также решения для конкретных баз данных. – Kangkan
Я использую «База данных Microsoft Access (.mdb)» –