Package com. Moya. tool;
Import java. Beans. propertydescriptor;
Import java. SQL. resultsetmetadata;
Import java. SQL. sqlexception;
Import java. util. arrays;
Import org. Apache. commons. dbutils. beanprocessor;
Import org. Apache. commons. lang3.stringutils;
/**
* Extended beanprocessor's processing method so that it can process mappings such as data_object_name-> dataobjectname */
Public class genbeanprocess extends beanprocessor {
/**
* Replace beanprocessor Mappings
*/
@ Override
Protected int [] mapcolumnstoproperties (resultsetmetadata rsmd, propertydescriptor [] props) throws sqlexception {
Int Cols = rsmd. getcolumncount ();
Int [] columntoproperty = new int [Cols + 1];
Arrays. Fill (columntoproperty, property_not_found );
For (INT Col = 1; Col <= Cols; Col ++ ){
String columnname = rsmd. getcolumnlabel (COL );
If (null = columnname | 0 = columnname. Length ()){
Columnname = rsmd. getcolumnlabel (COL );
}
For (INT I = 0; I <props. length; I ++ ){
If (convert (columnname). Equals (props [I]. getname ())){
Columntoproperty [col] = I;
Break;
}
}
}
Return columntoproperty;
}/**
* Data_object_name-> dataobjectname
*/
Private string convert (string objname ){
Stringbuilder result = new stringbuilder ();
String [] tokens = objname. Split ("_");
For (string token: tokens ){
If (result. Length () = 0)
Result. append (token. tolowercase ());
Else
Result. append (stringutils. capitalize (token. tolowercase ()));
}
Return result. tostring ();
}
}