[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java
User: dsundstrom Date: 02/04/12 18:26:58 Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java Log: Was missing a check for max length == 0, which means unlimited. Revision ChangesPath 1.11 +2 -2 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java Index: SQLUtil.java === RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- SQLUtil.java 12 Apr 2002 21:36:27 - 1.10 +++ SQLUtil.java 13 Apr 2002 01:26:58 - 1.11 @@ -27,7 +27,7 @@ * SQLUtil helps with building sql statements. * * @author a href=mailto:[EMAIL PROTECTED];Dain Sundstrom/a - * @version $Revision: 1.10 $ + * @version $Revision: 1.11 $ */ public class SQLUtil { public static String fixTableName(String tableName, DataSource dataSource) @@ -40,7 +40,7 @@ // fix length int maxLength = dmd.getMaxTableNameLength(); - if(tableName.length() maxLength) { + if(maxLength 0 tableName.length() maxLength) { CRC32 crc = new CRC32(); crc.update(tableName.getBytes()); String nameCRC = Long.toString(crc.getValue(), 36); ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java
User: dsundstrom Date: 02/01/15 13:29:50 Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java Log: Converted field arrays to Lists for easier handling. Revision ChangesPath 1.5 +184 -90 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java Index: SQLUtil.java === RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SQLUtil.java 2001/09/01 22:03:15 1.4 +++ SQLUtil.java 2002/01/15 21:29:50 1.5 @@ -7,44 +7,54 @@ package org.jboss.ejb.plugins.cmp.jdbc; -import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge; + /** * SQLUtil helps with building sql statements. * * @author a href=mailto:[EMAIL PROTECTED];Dain Sundstrom/a - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ */ public class SQLUtil { // === // Create Table Columns Clause - //columnName0 sqlType0 [, columnName1 sqlType0 [, columnName2 sqlType0 [...]]] + //columnName0 sqlType0 + //[, columnName1 sqlType0 + //[, columnName2 sqlType0 [...]]] // === - - /** - * Returns columnName0 [, columnName1 [AND columnName2 [...]]] - */ - public static String getCreateTableColumnsClause(JDBCCMPFieldBridge[] fields) { + public static String getCreateTableColumnsClause(List fields) { StringBuffer buf = new StringBuffer(); - for(int i=0; ifields.length; i++) { - if(i!=0) { + + List types = getJDBCTypes(fields); + for(Iterator iter = types.iterator(); iter.hasNext();) { + JDBCType type = (JDBCType)iter.next(); + buf.append(getCreateTableColumnsClause(type)); + if(iter.hasNext()) { buf.append(, ); } - buf.append(getCreateTableColumnsClause(fields[i].getJDBCType())); } return buf.toString(); } - + /** - * Returns columnName0 sqlType0 [, columnName1 sqlType0 [, columnName2 sqlType0 [...]]] - */ - public static String getCreateTableColumnsClause(JDBCCMPFieldBridge field) { +* Returns columnName0 sqlType0 +*[, columnName1 sqlType0 +*[, columnName2 sqlType0 [...]]] +*/ + public static String getCreateTableColumnsClause(JDBCFieldBridge field) { return getCreateTableColumnsClause(field.getJDBCType()); } /** - * Returns columnName0 sqlType0 [, columnName1 sqlType0 [, columnName2 sqlType0 [...]]] - */ +* Returns columnName0 sqlType0 +*[, columnName1 sqlType0 +*[, columnName2 sqlType0 [...]]] +*/ public static String getCreateTableColumnsClause(JDBCType type) { String[] columnNames = type.getColumnNames(); String[] sqlTypes = type.getSQLTypes(); @@ -65,43 +75,52 @@ // === /** - * Returns columnName0 [, columnName1 [AND columnName2 [...]]] - */ - public static String getColumnNamesClause(JDBCCMPFieldBridge[] fields) { +* Returns columnName0 [, columnName1 [AND columnName2 [...]]] +*/ + public static String getColumnNamesClause(List fields) { return getColumnNamesClause(fields, ); } /** - * Returns columnName0 [, columnName1 [AND columnName2 [...]]] - */ - public static String getColumnNamesClause(JDBCCMPFieldBridge[] fields, String identifier) { +* Returns columnName0 [, columnName1 [AND columnName2 [...]]] +*/ + public static String getColumnNamesClause(List fields, String identifier) { StringBuffer buf = new StringBuffer(); - for(int i=0; ifields.length; i++) { - if(i!=0) { + + List types = getJDBCTypes(fields); + for(Iterator iter = types.iterator(); iter.hasNext();) { + JDBCType type = (JDBCType)iter.next(); + buf.append(getColumnNamesClause(type, identifier)); + if(iter.hasNext()) { buf.append(, ); } - buf.append(getColumnNamesClause(fields[i].getJDBCType(), identifier)); } return buf.toString(); } - + /** - * Returns columnName0 [, columnName1 [, columnName2 [...]]] - */ - public static String getColumnNamesClause(JDBCCMPFieldBridge field) { +* Returns columnName0 [, columnName1 [, columnName2 [...]]] +
[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java
User: dsundstrom Date: 01/08/18 08:58:57 Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc SQLUtil.java Log: Added helper methods for bean to bean compare and bean to parameter compare. Revision ChangesPath 1.3 +70 -1 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java Index: SQLUtil.java === RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SQLUtil.java 2001/08/03 17:15:46 1.2 +++ SQLUtil.java 2001/08/18 15:58:57 1.3 @@ -13,7 +13,7 @@ * SQLUtil helps with building sql statements. * * @author a href=mailto:[EMAIL PROTECTED];Dain Sundstrom/a - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ public class SQLUtil { // === @@ -263,4 +263,73 @@ return buf.toString(); } + /** + * Returns parent.pkColumnName0=child.fkColumnName0 [AND parent.pkColumnName1=child.fkColumnName1 [AND parent.pkColumnName2=child.fkColumnName2 [...]]] + */ + public static String getWhereClause(JDBCCMPFieldBridge pkField, String parent, JDBCCMPFieldBridge fkField, String child) { + return getWhereClause(pkField.getJDBCType(), parent, fkField.getJDBCType(), child); + } + + /** + * Returns parent.pkColumnName0=child.fkColumnName0 [AND parent.pkColumnName1=child.fkColumnName1 [AND parent.pkColumnName2=child.fkColumnName2 [...]]] + */ + public static String getWhereClause(JDBCType pkType, String parent, JDBCType fkType, String child) { + if(parent.length() 0) { + parent += .; + } + if(child.length() 0) { + child += .; + } + + String[] pkColumnNames = pkType.getColumnNames(); + String[] fkColumnNames = fkType.getColumnNames(); + if(pkColumnNames.length != fkColumnNames.length) { + throw new IllegalArgumentException(PK and FK have different number of columns); + } + + StringBuffer buf = new StringBuffer(); + for(int i=0; ipkColumnNames.length; i++) { + if(i!=0) { + buf.append( AND ); + } + buf.append(parent).append(pkColumnNames[i]); + buf.append(=); + buf.append(child).append(fkColumnNames[i]); + } + return buf.toString(); + } + + public static String getSelfCompareWhereClause(JDBCCMPFieldBridge[] fields, String fromIdentifier, String toIdentifier) { + + StringBuffer buf = new StringBuffer(); + for(int i=0; ifields.length; i++) { + if(i!=0) { + buf.append( AND ); + } + buf.append(getSelfCompareWhereClause(fields[i].getJDBCType(), fromIdentifier, toIdentifier)); + } + return buf.toString(); + } + + public static String getSelfCompareWhereClause(JDBCType type, String fromIdentifier, String toIdentifier) { + if(fromIdentifier.length() 0) { + fromIdentifier += .; + } + if(toIdentifier.length() 0) { + toIdentifier += .; + } + + String[] columnNames = type.getColumnNames(); + + StringBuffer buf = new StringBuffer(); + for(int i=0; icolumnNames.length; i++) { + if(i!=0) { + buf.append( AND ); + } + buf.append(fromIdentifier).append(columnNames[i]); + buf.append( = ); + buf.append(toIdentifier).append(columnNames[i]); + } + return buf.toString(); + } } ___ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development