📄 gigo.java
字号:
package com.strong.ims.comutil;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* actionForm 与 POJO 映射方法
* @author jqg
*
*/
public class GIGO {
private static String[] abridge = {"", "Hf", "Tb", "Ddl", "Hd", "Sb", "Fb", "Rb", "Cb"};
public static boolean fill(Object target, Object source) throws Exception {
Field souFie[] = source.getClass().getDeclaredFields();
Method tarMet[] = target.getClass().getDeclaredMethods();
for(int i = 0; i < souFie.length; i++){
Class[] arg1 = { souFie[i].getType() };
char[] filedName = souFie[i].getName().toCharArray();
filedName[0] = Character.toUpperCase(filedName[0]);
try{
Method tarMeth = null;
Method souMeth = null;
try{
for(int j=0; j<abridge.length; j++){
tarMeth = target.getClass().getMethod(
"set"+ abridge[j] + String.valueOf(filedName), arg1);
if( tarMeth!=null )
break;
}
for( int j=0; j<abridge.length; j++ ){
souMeth = source.getClass().getMethod(
"get" + abridge[j] + String.valueOf(filedName), null);
if( souMeth!=null ){
Object[] arg3 = {""};
arg3[0] = souMeth.invoke(source, null);
if( arg3[0]==null && "java.lang.String".equals(arg1[0].getName()) )
arg3[0] = "";
tarMeth.invoke(target, arg3);
break;
}
}
// if( souMeth==null ){
// if( "java.lang.String".equals(arg1[0].getName()) ){
// Object[] arg3 = { "" };
// tarMeth.invoke(target, arg3);
// }
// }
}catch(NoSuchMethodException e){
continue;
}
}
catch (Exception e){
System.out.println("GIGO:fill:error");
throw e;
}
}
return true;
}
public static boolean fill(Object target, ResultSet rs) throws Exception {
Commen com = new Commen();
Field tarFie[] = target.getClass().getDeclaredFields();
Method tarMet[] = target.getClass().getDeclaredMethods();
for(int i = 0; i < tarFie.length; i++){
Class[] arg1 = { tarFie[i].getType() };
char[] filedName = tarFie[i].getName().toCharArray();
filedName[0] = Character.toUpperCase(filedName[0]);
try{
Method tarMeth = null;
tarMeth = target.getClass().getMethod(
"set"+ String.valueOf(filedName), arg1);
if("java.lang.String".equals(arg1[0].getName())){
String filedNameTemp = String.valueOf(filedName);
Object[] arg3 = {null};
for(int j=1; j<abridge.length; j++){
try{
arg3[0] = com.adjustStrig(rs.getString(filedNameTemp)) ;
tarMeth.invoke(target, arg3);
break;
}catch(SQLException e){
if( filedNameTemp.startsWith(abridge[j]) )
filedNameTemp = filedNameTemp.substring( abridge[j].length(), filedNameTemp.length());
continue;
}
}
if( arg3[0]==null ){
//arg3[0] = "";
//tarMeth.invoke(target, arg3);
rs.getString(String.valueOf(filedName));
}
}
else if("int".equals(arg1[0].getName())){
String filedNameTemp = String.valueOf(filedName);
Object[] arg3 = {null};
for(int j=1; j<abridge.length; j++){
try{
arg3[0] = Integer.valueOf(String.valueOf(rs.getInt(String.valueOf(filedNameTemp))));
tarMeth.invoke(target, arg3);
break;
}catch(SQLException e){
if( filedNameTemp.startsWith(abridge[j]) )
filedNameTemp = filedNameTemp.substring( abridge[j].length(), filedNameTemp.length());
continue;
}
}
if( arg3[0]==null ){
rs.getInt(String.valueOf(filedName));
}
}
else if("double".equals(arg1[0].getName())){
String filedNameTemp = String.valueOf(filedName);
Object[] arg3 = {null};
for(int j=1; j<abridge.length; j++){
try{
arg3[0] = Double.valueOf(String.valueOf(rs.getDouble(String.valueOf(filedNameTemp))));
tarMeth.invoke(target, arg3);
break;
}catch(SQLException e){
if( filedNameTemp.startsWith(abridge[j]) )
filedNameTemp = filedNameTemp.substring( abridge[j].length(), filedNameTemp.length());
continue;
}
}
if( arg3[0]==null ){
rs.getDouble(String.valueOf(filedName));
}
}
else if("long".equals(arg1[0].getName())){
String filedNameTemp = String.valueOf(filedName);
Object[] arg3 = {null};
for(int j=1; j<abridge.length; j++){
try{
arg3[0] = Long.valueOf(String.valueOf(rs.getLong(String.valueOf(filedNameTemp))));
tarMeth.invoke(target, arg3);
break;
}catch(SQLException e){
if( filedNameTemp.startsWith(abridge[j]) )
filedNameTemp = filedNameTemp.substring( abridge[j].length(), filedNameTemp.length());
continue;
}
}
if( arg3[0]==null ){
rs.getDouble(String.valueOf(filedName));
}
}
else if("java.util.Date".equals(arg1[0].getName())){
String filedNameTemp = String.valueOf(filedName);
Object[] arg3 = {null};
for(int j=1; j<abridge.length; j++){
try{
arg3[0] = rs.getTimestamp(String.valueOf(filedNameTemp));
tarMeth.invoke(target, arg3);
break;
}catch(SQLException e){
if( filedNameTemp.startsWith(abridge[j]) )
filedNameTemp = filedNameTemp.substring( abridge[j].length(), filedNameTemp.length());
continue;
}
}
if( arg3[0]==null ){
rs.getTimestamp(String.valueOf(filedName));
}
}
}
catch (NoSuchMethodException e){
continue;
}
catch (SQLException e){
if("07009".equals(e.getSQLState())){
//07009: Invalid column name ObjectName.
//System.out.println("GIGO warning:" + e.getMessage());
}
else{
System.out.println("GIGO:fill:error");
throw e;
}
}
catch (Exception e){
System.out.println("GIGO:fill:error");
throw e;
}
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -