baliuka 2003/03/19 01:21:39
Modified: dbutils/src/java/org/apache/commons/dbutils DbUtils.java
ProcedureUtils.java
dbutils/src/test/org/apache/commons/dbutils Demo.java
ProcedureUtilsTest.java
Log:
fixed index mapping for bean collection and dependancy on jdk 1.4 BitSet
Revision Changes Path
1.22 +4 -4
jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/DbUtils.java
Index: DbUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/DbUtils.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- DbUtils.java 16 Mar 2003 16:23:47 -0000 1.21
+++ DbUtils.java 19 Mar 2003 09:21:39 -0000 1.22
@@ -381,9 +381,9 @@
LOOP:
for( int i = 1; i <= cnt; i++ ){
+ String name = rsmd.getColumnName(i);
for( int j = 0; j < pd.length; j++ ){
- String name = rsmd.getColumnName(i);
- if(name.equals(pd[i].getName())){
+ if(name.equals(pd[j].getName())){
nameToIndex[i] = j;
continue LOOP;
}
@@ -401,7 +401,7 @@
throw new DbException( "can not create " +
cls.getName() , e);
}
- for(int i = 1; i < cnt; i++){
+ for(int i = 1; i <= cnt; i++){
Object value = rs.getObject(i);
int index = nameToIndex[i];
if( rs.wasNull() &&
pd[index].getPropertyType().isPrimitive() ){
@@ -409,7 +409,7 @@
}
try{
- pd[i].getWriteMethod().invoke(obj, new Object[]{
value });
+ pd[index].getWriteMethod().invoke(obj, new
Object[]{ value });
}catch(Exception e){
1.13 +13 -5
jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProcedureUtils.java
Index: ProcedureUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProcedureUtils.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ProcedureUtils.java 16 Mar 2003 16:23:47 -0000 1.12
+++ ProcedureUtils.java 19 Mar 2003 09:21:39 -0000 1.13
@@ -123,7 +123,8 @@
if(sql[i] == '$'){
if( state.get(ESCAPE) ){
sb.append('$');
- state.clear();
+ state.clear(ESCAPE);
+ state.clear(ARG);
continue;
}
if(state.get(ARG)){
@@ -131,7 +132,7 @@
sb.append('?');
digit.delete(0, digit.length() );
}
- state.clear();
+ state.clear(ARG);
state.set(ESCAPE);
continue ;
}
@@ -139,7 +140,7 @@
if ( Character.isDigit(sql[i]) &&
(state.get(ESCAPE) || state.get(ARG)) ){
digit.append(sql[i]);
- state.clear();
+ state.clear(ESCAPE);
state.set(ARG);
if( i != sql.length - 1 ){
continue;
@@ -156,7 +157,9 @@
if( i < sql.length ){
sb.append(sql[i]);
}
- state.clear();
+ state.clear(ESCAPE);
+ state.clear(ARG);
+
}
return indexes;
@@ -512,6 +515,7 @@
this.method = method;
this.args = args;
hash = method.hashCode();
+ if(args != null)
for(int i=0; i< args.length; i++){
hash += 3*(args[i] == null ? 0 : args[i].hashCode());
}
@@ -526,6 +530,10 @@
CacheKey key = (CacheKey)obj;
if(key.method == method || key.method.equals(method)){
+
+ if(args == null ){
+ return key.args == null || key.args.length == 0;
+ }
for( int i = 0; i < args.length; i++ ){
if( args[i] == key.args[i] ){
1.11 +5 -9
jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/Demo.java
Index: Demo.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/Demo.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Demo.java 16 Mar 2003 16:23:48 -0000 1.10
+++ Demo.java 19 Mar 2003 09:21:39 -0000 1.11
@@ -42,18 +42,14 @@
*/
public Integer maxId(String table);
- /**
- [EMAIL PROTECTED] SELECT now()
- */
- public java.util.Date now();
/**
- [EMAIL PROTECTED] SELECT * FROM TBL WHERE ID=$0
+ [EMAIL PROTECTED] SELECT id, name FROM TBL WHERE ID=$0
*/
public Object[] getRow( int id );
/**
- [EMAIL PROTECTED] SELECT * FROM TBL WHERE ID=$0
+ [EMAIL PROTECTED] SELECT id, name FROM TBL WHERE ID=$0
*/
public Map getRowAsMap( int id );
@@ -76,7 +72,7 @@
public java.util.Collection getBeans();
/**
- [EMAIL PROTECTED] SELECT * FROM {0}
+ [EMAIL PROTECTED] SELECT id, name FROM {0}
*/
public java.util.Collection getAll( String tbl );
@@ -88,13 +84,13 @@
/**
- [EMAIL PROTECTED] SELECT * FROM TBL
+ [EMAIL PROTECTED] SELECT id, name FROM TBL
[EMAIL PROTECTED] DemoHandler
*/
public int print(java.io.PrintStream out) throws java.io.IOException;
/**
- [EMAIL PROTECTED] SELECT * FROM {1} WHERE {2} > $3
+ [EMAIL PROTECTED] SELECT id, name FROM {1} WHERE {2} > $3
[EMAIL PROTECTED] DemoHandler
*/
public int dynamicPrint(java.io.PrintStream out,
1.10 +2 -1
jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProcedureUtilsTest.java
Index: ProcedureUtilsTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProcedureUtilsTest.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ProcedureUtilsTest.java 16 Mar 2003 16:23:48 -0000 1.9
+++ ProcedureUtilsTest.java 19 Mar 2003 09:21:39 -0000 1.10
@@ -9,6 +9,7 @@
import com.thoughtworks.qdox.model.*;
import junit.framework.*;
+
/**
*
* @author baliuka
@@ -123,7 +124,7 @@
assertTrue( max != null );
assertTrue("cached query", max == demo.maxId("TBL") );
- assertTrue( demo.now() != null );
+
assertEquals(demo.concat("A","B"), "AB" );
assertTrue(demo.getRow(max.intValue()).length == 2 );
assertTrue(demo.getRowAsMap(max.intValue()).size() == 2 );
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]