You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by dj...@apache.org on 2001/08/06 07:09:46 UTC
cvs commit: jakarta-turbine-torque/src/java/org/apache/torque/adapter DB.java DBOracle.java
djpolito 01/08/05 22:09:46
Modified: src/java/org/apache/torque/util Criteria.java
SqlExpression.java
src/java/org/apache/torque/adapter DB.java DBOracle.java
Log:
Criteria.java: Added static strings for ISNULL and ISNOTNULL;
SqlExpression.java: Fixed a problem when ignoreCase was used with ISNULL
or ISNOTNULL.
Fixed date formating problem with Oracle. A new method
was added to DB.java and DBOracle.java that does the
date format.
DB.java: Added getDateString() method to format date fields.
DBOracle.java Added getDateString() method with proper date format.
Changed escapeText() to false.
Revision Changes Path
1.2 +11 -1 jakarta-turbine-torque/src/java/org/apache/torque/util/Criteria.java
Index: Criteria.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/util/Criteria.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Criteria.java 2001/08/02 05:08:28 1.1
+++ Criteria.java 2001/08/06 05:09:46 1.2
@@ -90,7 +90,7 @@
* @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
* @author <a href="mailto:eric@dobbse.net">Eric Dobbs</a>
* @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
- * @version $Id: Criteria.java,v 1.1 2001/08/02 05:08:28 jvanzyl Exp $
+ * @version $Id: Criteria.java,v 1.2 2001/08/06 05:09:46 djpolito Exp $
*/
public class Criteria extends Hashtable
{
@@ -177,6 +177,16 @@
* "Order by" qualifier - descending
*/
private static final String DESC = "DESC";
+
+ /**
+ * "IS NULL" null comparison
+ */
+ public static final String ISNULL = " IS NULL ";
+
+ /**
+ * "IS NOT NULL" null comparison
+ */
+ public static final String ISNOTNULL = " IS NOT NULL ";
private static final int DEFAULT_CAPACITY = 10;
1.2 +22 -8 jakarta-turbine-torque/src/java/org/apache/torque/util/SqlExpression.java
Index: SqlExpression.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/util/SqlExpression.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SqlExpression.java 2001/08/02 05:08:29 1.1
+++ SqlExpression.java 2001/08/06 05:09:46 1.2
@@ -76,7 +76,7 @@
*
* @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
- * @version $Id: SqlExpression.java,v 1.1 2001/08/02 05:08:29 jvanzyl Exp $
+ * @version $Id: SqlExpression.java,v 1.2 2001/08/06 05:09:46 djpolito Exp $
*/
public class SqlExpression
{
@@ -266,26 +266,29 @@
criteria = "null";
if (comparison.equals(Criteria.EQUAL))
{
- comparison = " IS ";
+ comparison = Criteria.ISNULL;
}
else if (comparison.equals(Criteria.NOT_EQUAL))
{
- comparison = " IS NOT ";
+ comparison = Criteria.ISNOTNULL;
}
else if (comparison.equals(Criteria.ALT_NOT_EQUAL))
{
- comparison = " IS NOT ";
+ comparison = Criteria.ISNOTNULL;
}
}
else
{
if (criteria instanceof String ||
- criteria instanceof java.util.Date ||
- criteria instanceof StringKey ||
- criteria instanceof DateKey)
+ criteria instanceof StringKey)
{
criteria = quoteAndEscapeText(criteria.toString(), db);
}
+ else if( criteria instanceof java.util.Date ||
+ criteria instanceof DateKey)
+ {
+ criteria = db.getDateString(criteria.toString());
+ }
else if( criteria instanceof Boolean )
{
criteria = criteria.equals(Boolean.TRUE) ? "1" : "0";
@@ -305,6 +308,16 @@
}
else
{
+ // Do not put the upper/lower keyword around IS NULL
+ // or IS NOT NULL
+ if ( comparison.equals(Criteria.ISNULL) ||
+ comparison.equals(Criteria.ISNOTNULL))
+ {
+ whereClause.append(columnName)
+ .append(comparison);
+ }
+ else
+ {
String columnValue = criteria.toString();
if (ignoreCase && db != null)
{
@@ -314,6 +327,7 @@
whereClause.append(columnName)
.append(comparison)
.append(columnValue);
+ }
}
}
@@ -593,7 +607,7 @@
buf.append(SINGLE_QUOTE).append(SINGLE_QUOTE);
break;
case BACKSLASH:
- buf.append(BACKSLASH).append(BACKSLASH);
+ buf.append(escapeString);
break;
default:
buf.append(data[i]);
1.3 +12 -1 jakarta-turbine-torque/src/java/org/apache/torque/adapter/DB.java
Index: DB.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/adapter/DB.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DB.java 2001/08/02 13:24:50 1.2
+++ DB.java 2001/08/06 05:09:46 1.3
@@ -99,7 +99,7 @@
*
* @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
* @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
- * @version $Id: DB.java,v 1.2 2001/08/02 13:24:50 jvanzyl Exp $
+ * @version $Id: DB.java,v 1.3 2001/08/06 05:09:46 djpolito Exp $
*/
public abstract class DB implements Serializable
{
@@ -372,5 +372,16 @@
public int getLimitStyle()
{
return LIMIT_STYLE_NONE;
+ }
+
+ /**
+ * This method is used to format any date string.
+ * Database can use different default date formats.
+ *
+ * @return The proper date formated String.
+ */
+ public String getDateString(String dateString)
+ {
+ return "\'" + dateString + "\'";
}
}
1.2 +24 -1 jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBOracle.java
Index: DBOracle.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBOracle.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DBOracle.java 2001/08/02 05:08:21 1.1
+++ DBOracle.java 2001/08/06 05:09:46 1.2
@@ -68,7 +68,7 @@
*
* @author <a href="mailto:jon@clearink.com">Jon S. Stevens</a>
* @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
- * @version $Id: DBOracle.java,v 1.1 2001/08/02 05:08:21 jvanzyl Exp $
+ * @version $Id: DBOracle.java,v 1.2 2001/08/06 05:09:46 djpolito Exp $
*/
public class DBOracle
extends DB
@@ -205,5 +205,28 @@
}
}
+ /**
+ * This method is for the SqlExpression.quoteAndEscape rules. The rule is,
+ * any string in a SqlExpression with a BACKSLASH will either be changed to
+ * "\\" or left as "\". SapDB does not need the escape character.
+ *
+ * @return false.
+ */
+
+ public boolean escapeText()
+ {
+ return false;
+ }
+
+ /**
+ * This method is used to format any date string.
+ * Database can use different default date formats.
+ *
+ * @return The proper date formated String.
+ */
+ public String getDateString(String dateString)
+ {
+ return "TO_DATE('" + dateString + "', 'yyyy-mm-dd hh24:mi:ss..' )";
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org