You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/11/16 19:18:58 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/platforms PlatformDefaultImpl.java PlatformHsqldbImpl.java Platform.java PlatformMySQLImpl.java
brj 2003/11/16 10:18:58
Modified: src/java/org/apache/ojb/broker/platforms
PlatformDefaultImpl.java PlatformHsqldbImpl.java
Platform.java PlatformMySQLImpl.java
Log:
added support for LIMIT
Revision Changes Path
1.20 +36 -0 db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java
Index: PlatformDefaultImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- PlatformDefaultImpl.java 28 Oct 2003 21:08:23 -0000 1.19
+++ PlatformDefaultImpl.java 16 Nov 2003 18:18:58 -0000 1.20
@@ -337,4 +337,40 @@
java.sql.Clob aClob = rs.getClob(columnId);
return (rs.wasNull() ? null : aClob.getSubString(1L, (int) aClob.length()));
}
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#addPagingSql(java.lang.StringBuffer)
+ */
+ public void addPagingSql(StringBuffer anSqlString)
+ {
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#bindPagingParametersFirst()
+ */
+ public boolean bindPagingParametersFirst()
+ {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#supportsPaging()
+ */
+ public boolean supportsPaging()
+ {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#bindPagingParameters(java.sql.PreparedStatement, int, int, int)
+ */
+ public int bindPagingParameters(PreparedStatement ps, int index, int startAt, int endAt) throws SQLException
+ {
+ ps.setInt(index, startAt - 1); // zero based start
+ index++;
+ ps.setInt(index, endAt - (startAt - 1)); // number of rows to fetch
+ index++;
+ return index;
+ }
+
}
1.5 +28 -1 db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java
Index: PlatformHsqldbImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PlatformHsqldbImpl.java 9 May 2003 23:58:18 -0000 1.4
+++ PlatformHsqldbImpl.java 16 Nov 2003 18:18:58 -0000 1.5
@@ -1,5 +1,6 @@
package org.apache.ojb.broker.platforms;
+
/* ====================================================================
* The Apache Software License, Version 1.1
*
@@ -78,4 +79,30 @@
{
return LAST_INSERT;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#addPagingSql(java.lang.StringBuffer)
+ */
+ public void addPagingSql(StringBuffer anSqlString)
+ {
+ anSqlString.insert(6, " LIMIT ? ? ");
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#bindPagingParametersFirst()
+ */
+ public boolean bindPagingParametersFirst()
+ {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#supportsPaging()
+ */
+ public boolean supportsPaging()
+ {
+ return true;
+ }
+
+
}
1.18 +29 -1 db-ojb/src/java/org/apache/ojb/broker/platforms/Platform.java
Index: Platform.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/Platform.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- Platform.java 29 Jul 2003 16:54:12 -0000 1.17
+++ Platform.java 16 Nov 2003 18:18:58 -0000 1.18
@@ -218,4 +218,32 @@
* Oracle has funky clobs.
*/
public Object getClob(ResultSet rs, int jdbcType, String columnId) throws SQLException;
+
+ /**
+ * Answer true if LIMIT or equivalent is supported
+ * @return
+ */
+ public boolean supportsPaging();
+
+ /**
+ * Add the LIMIT or equivalent to the SQL
+ * @return
+ */
+ public void addPagingSql(StringBuffer anSqlString);
+
+ /**
+ * Answer true if the LIMIT parameters are bound before the query parameters
+ * @return
+ */
+ boolean bindPagingParametersFirst();
+
+ /**
+ * Bind the Paging Parameters
+ * @param ps
+ * @param index parameter index
+ * @param startAt
+ * @param endAt
+ * @return
+ */
+ public int bindPagingParameters(PreparedStatement ps, int index, int startAt, int endAt) throws SQLException;
}
1.5 +18 -0 db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java
Index: PlatformMySQLImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PlatformMySQLImpl.java 5 Aug 2003 11:44:12 -0000 1.4
+++ PlatformMySQLImpl.java 16 Nov 2003 18:18:58 -0000 1.5
@@ -91,4 +91,22 @@
{
return LAST_INSERT + tableName + LIMIT;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#addPagingSql(java.lang.StringBuffer)
+ */
+ public void addPagingSql(StringBuffer anSqlString)
+ {
+ anSqlString.append(" LIMIT ?,?");
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.ojb.broker.platforms.Platform#supportsPaging()
+ */
+ public boolean supportsPaging()
+ {
+ return true;
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org