⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gigo.java

📁 基本库存管理系统的框架 struts hibernate
💻 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 + -