Hola tu clase, la que me has pasado, que no he podido ponerla ya que implemente una interfaz que no la tengo, me la he convertido a esto que te pongo abajo.
Luego lo que pretendo es probarlo desde una clase main para lo cual hago: public class PruebaIbatis extends MyAppSqlconfig{ public static void main (String args[]){ MyAppSqlconfig f; try{ Object cat = (Object)f.getObject("getCategoriasById",new Integer(3)); }catch(Exception e){ e.printStackTrace(); } } } pero me da un error diciendome que la f no esta inicializada que es un objeto del tipo de la clase que te pongo abajo, la qu ehe modificado con la tuya. me peudes dar un empujoncillo ma a ver si lo consigo? Muchas gracias por tu ayuda. De veras. import java.io.Reader; import java.sql.SQLException; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class MyAppSqlconfig { private static final SqlMapClient sqlMap; static { try { String resource = "SqlMapConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException( "Error initializing MyAppSqlConfig class.Cause : " + e); } } public static SqlMapClient getSqlMapInstance() { return sqlMap; } public final Object getObject(String statementName, Object parameterObject) throws Exception { Object result = null; try { sqlMap.startTransaction(); result = sqlMap.queryForObject(statementName, parameterObject); sqlMap.commitTransaction(); } catch (Exception e) { try { sqlMap.endTransaction(); } catch (SQLException ex) { ex.printStackTrace(); } e.printStackTrace(); } return result; } }//clase > Muy buenas!!! > Necesitas una clase que carge tu configuración. Te > mando el código de la mía con la que realizo las > transacciones. Lo único que tienes que hacer es > extender a la que te mando y utilizar los métodos de > la superclase, o sea, los de mi clase abstracta, > desde la subclase. > public class AbstractUnafeDAO implements IUnafeDAO { > public static int INSERT_BATCH = 0; > public static int DELETE_BATCH = 1; > public static int UPDATE_BATCH = 2; > > private static Log log = > LogFactory.getLog(AbstractUnafeDAO.class); > private static SqlMapClient sqlMap = null; > > static { > // CARGA ESTATICA DE LOS PARAMETROS > try { > String resource = > "com/unafe/dao/conf/sql-map-config.xml"; > Reader reader = > Resources.getResourceAsReader(resource); > sqlMap = > SqlMapClientBuilder.buildSqlMapClient(reader); > reader.close(); > } catch (Exception ex) { > log.error("AbstractUnafeDAO static block: " + ex); > throw new RuntimeException("Error Initializing > AbstractUnafeDAO :" + ex); > } > } > > public final List getList(String statementName, > Object parameterObject) throws SQLException { > List list = null; > > try { > sqlMap.startTransaction(); > list = sqlMap.queryForList(statementName, > parameterObject); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > getList.endTransaction: " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > getList.commitTransaction: " + e); > throw e; > } > > return list; > } > > public final Object getObject(String statementName, > Object parameterObject) throws SQLException { > Object result = null; > > try { > sqlMap.startTransaction(); > result = sqlMap.queryForObject(statementName, > parameterObject); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > getObject.endTransaction: " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > getObject.commitTransaction: " + e); > throw e; > } > > return result; > } > > > public final int update(String statementName, Object > parameterObject) throws SQLException { > int result = 0; > > try { > sqlMap.startTransaction(); > result = sqlMap.update(statementName, > parameterObject); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > update.endTransaction: > " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > update.commitTransaction: " + e); > throw e; > } > > return result; > } > > public final void insert(String statementName, Object > parameterObject) throws SQLException { > try { > sqlMap.startTransaction(); > sqlMap.insert(statementName, parameterObject); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > insert.endTransaction: > " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > insert.commitTransaction: " + e); > throw e; > } > } > > public final void delete(String statementName, Object > parameterObject) throws SQLException { > try { > sqlMap.startTransaction(); > sqlMap.delete(statementName, parameterObject); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > delete.endTransaction: > " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > delete.commitTransaction: " + e); > throw e; > } > /* finally{ > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > throw ex; > } > } > */ > } > > public final void executeBatch(int accion, String > statementName, List objs) throws SQLException{ > try { > sqlMap.startTransaction(); > sqlMap.startBatch(); > for(int i=0;i<objs.size();i++){ > if(accion==INSERT_BATCH) > sqlMap.insert(statementName, > objs.get(i)); > else if(accion==UPDATE_BATCH) > sqlMap.update(statementName, > objs.get(i)); > else if(accion==DELETE_BATCH) > sqlMap.delete(statementName, > objs.get(i)); > } > sqlMap.executeBatch(); > sqlMap.commitTransaction(); > } catch (SQLException e) { > try { > sqlMap.endTransaction(); > } catch (SQLException ex) { > log.error("AbstractUnafeDAO > executeBatch.endTransaction: " + ex); > throw ex; > } > log.error("AbstractUnafeDAO > executeBatch.commitTransaction: " + e); > throw e; > } > } > } > > Saludos > > > > ______________________________________________ > Renovamos el Correo Yahoo! > Nuevos servicios, más seguridad > http://correo.yahoo.es >