You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by jg...@apache.org on 2006/10/25 23:43:10 UTC
svn commit: r467774 - in
/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator:
config/AbatorContext.java config/GeneratedKey.java
internal/db/DatabaseDialects.java
Author: jgbutler
Date: Wed Oct 25 14:43:09 2006
New Revision: 467774
URL: http://svn.apache.org/viewvc?view=rev&rev=467774
Log: (empty)
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseDialects.java
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java?view=diff&rev=467774&r1=467773&r2=467774
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java Wed Oct 25 14:43:09 2006
@@ -397,4 +397,8 @@
return xmlElement;
}
+
+ public List getTableConfigurations() {
+ return tableConfigurations;
+ }
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java?view=diff&rev=467774&r1=467773&r2=467774
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java Wed Oct 25 14:43:09 2006
@@ -43,26 +43,11 @@
this.isIdentity = isIdentity;
this.configuredSqlStatement = configuredSqlStatement;
- if ("DB2".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.DB2);
- } else if ("MySQL".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.MYSQL);
- } else if ("SqlServer".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.SQLSERVER);
- } else if ("Cloudscape".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.CLOUDSCAPE);
- } else if ("Derby".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.DERBY);
- } else if ("HSQLDB".equalsIgnoreCase(configuredSqlStatement)) { //$NON-NLS-1$
- this.runtimeSqlStatement = DatabaseDialects
- .getIdentityClause(DatabaseDialects.HSQLDB);
- } else {
+ DatabaseDialects dialect = DatabaseDialects.getDatabaseDialect(configuredSqlStatement);
+ if (dialect == null) {
this.runtimeSqlStatement = configuredSqlStatement;
+ } else {
+ this.runtimeSqlStatement = dialect.getIdentityRetrievalStatement();
}
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseDialects.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseDialects.java?view=diff&rev=467774&r1=467773&r2=467774
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseDialects.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseDialects.java Wed Oct 25 14:43:09 2006
@@ -15,46 +15,63 @@
*/
package org.apache.ibatis.abator.internal.db;
-import java.util.HashMap;
-import java.util.Map;
-
/**
+ * Typesafe enum of known database dialects
+ *
* @author Jeff Butler
*/
public class DatabaseDialects {
- public static final Integer DB2 = new Integer(1);
+
+ public static final DatabaseDialects DB2 = new DatabaseDialects("VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- public static final Integer MYSQL = new Integer(2);
+ public static final DatabaseDialects MYSQL = new DatabaseDialects("SELECT LAST_INSERT_ID()"); //$NON-NLS-1$
- public static final Integer SQLSERVER = new Integer(3);
+ public static final DatabaseDialects SQLSERVER = new DatabaseDialects("SELECT SCOPE_IDENTITY()"); //$NON-NLS-1$
- public static final Integer CLOUDSCAPE = new Integer(4);
+ public static final DatabaseDialects CLOUDSCAPE = new DatabaseDialects("VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- public static final Integer DERBY = new Integer(5);
+ public static final DatabaseDialects DERBY = new DatabaseDialects("VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- public static final Integer HSQLDB = new Integer(6);
+ public static final DatabaseDialects HSQLDB = new DatabaseDialects("CALL IDENTITY()"); //$NON-NLS-1$
- private static final Map identityClauses;
-
- static {
- identityClauses = new HashMap();
+ private String identityRetrievalStatement;
- identityClauses.put(DB2, "VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- identityClauses.put(MYSQL, "SELECT LAST_INSERT_ID()"); //$NON-NLS-1$
- identityClauses.put(SQLSERVER, "SELECT SCOPE_IDENTITY()"); //$NON-NLS-1$
- identityClauses.put(CLOUDSCAPE, "VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- identityClauses.put(DERBY, "VALUES IDENTITY_VAL_LOCAL()"); //$NON-NLS-1$
- identityClauses.put(HSQLDB, "CALL IDENTITY()"); //$NON-NLS-1$
+ /**
+ *
+ */
+ private DatabaseDialects(String identityRetrievalStatement) {
+ super();
+ this.identityRetrievalStatement = identityRetrievalStatement;
}
- public static String getIdentityClause(Integer dialect) {
- return (String) identityClauses.get(dialect);
+ public String getIdentityRetrievalStatement() {
+ return identityRetrievalStatement;
}
/**
- *
+ *
+ * @param database
+ * @return the database dialect for the selected database. May return null
+ * if there is no known dialect for the selected db
*/
- private DatabaseDialects() {
- super();
+ public static DatabaseDialects getDatabaseDialect(String database) {
+ DatabaseDialects returnValue = null;
+
+ if ("DB2".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = DB2;
+ } else if ("MySQL".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = MYSQL;
+ } else if ("SqlServer".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = SQLSERVER;
+ } else if ("Cloudscape".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = CLOUDSCAPE;
+ } else if ("Derby".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = DERBY;
+ } else if ("HSQLDB".equalsIgnoreCase(database)) { //$NON-NLS-1$
+ returnValue = HSQLDB;
+ }
+
+ return returnValue;
}
+
}