Wouldn't a tool like dbunit do this better? Larry
On 8/18/05, Folashade Adeyosoye <[EMAIL PROTECTED]> wrote: > I use mine to back up my database, by passing in the table name into a > method, and this methods creates a flat file with a whole bunch of inserts, > that I can use to repopulate the table if I need to. > > > > public StringBuffer systemDatabaseBackup(String tableName) throws > DaoException { > > Connection connection = null; > PreparedStatement statement = null; > ResultSet resultSet = null; > StringBuffer sb = new StringBuffer(); > StringBuffer sbStart = new StringBuffer(); > StringBuffer sql = new StringBuffer(1024); > > > sql.append("SELECT * FROM " + tableName.trim()); > > try { > connection = getConnection(); > statement = connection.prepareStatement(sql.toString()); > resultSet = statement.executeQuery(); > ResultSetMetaData rsmd = resultSet.getMetaData(); > int colType[] = new int[rsmd.getColumnCount()]; > String colName = ""; > String colValue = ""; > > > sbStart.append("insert into " + tableName + " ( "); > > > // setting up the insert statement. > for (int idx = 0, col = 1; idx < colType.length; idx++, col++) { > colName = rsmd.getColumnName(col); > if ( idx < colType.length-1 ){ > sbStart.append(colName + ", "); > } > else{ > sbStart.append(colName + " "); > } > } > sb.append(sbStart + ") values ("); > > > //set the values > while (resultSet.next()) { > for (int idx = 0, col = 1; idx < colType.length; idx++, col++) { > colName = rsmd.getColumnName(col); > colValue = resultSet.getString(colName); > > if ( colValue == null || colValue.equalsIgnoreCase("null") ){ > colValue = ""; > } > else{ > colValue = colValue.replaceAll("'","''"); > } > > > if (idx < colType.length-1) > sb.append("'" + colValue + "',"); > else > sb.append("'" + colValue + "');"); > > } > if ( !resultSet.isLast()){ > sb.append("\n" + sbStart + ") values ("); > } > } } > catch (SQLException sqlEx) { > logger.fatal("SQLException Error. " + sqlEx.getMessage()); > throw new DaoException(sqlEx.getMessage()); > } > catch (Exception ex) { > logger.error("Exception Error. " + ex.getMessage()); > throw new DaoException(ex.getMessage()); > } > return sb; > } > > -----Original Message----- > From: Prashanth Sukumaran [mailto:[EMAIL PROTECTED] > Sent: Thursday, August 18, 2005 12:45 PM > To: user-java@ibatis.apache.org > Subject: RE: How to get table metadata? > > Hi Sreenivasulu, > > Can you tell us what you want to do with the column names? > > Also you may try to get it this way. > > SqlMapDaoTemplate.getSqlMapExecutor() will give you the sqlMapClient handle. > > Then you do sqlMapClient.getDelegate() will give you the handle to > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate. > > I think com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate is the answer > to you question. > > It has > private HashMap mappedStatements; > private HashMap cacheModels; > private HashMap resultMaps; > private HashMap parameterMaps; > > May be one of these will have the data for what you are looking for. You > should try the getter > methods for the data. All the getters work based on the "ID" (defined in > the sqlmap) of the sql > you are executing. > > The developers of IBatis may have a better way. Just see if these can help > you. > > Rgds > Prashanth Sukumaran. > > > --- "Konda, Sreenivasulu (Consultant)" <[EMAIL PROTECTED]> > wrote: > > > Hi, > > > > I have not got any solution yet. Can you please share the idea to get > > the column names dynamically? > > > > Thanks and regards, > > Sreenivas > > > > ________________________________ > > > > From: Folashade Adeyosoye [mailto:[EMAIL PROTECTED] > > Sent: Thursday, August 18, 2005 10:08 AM > > To: user-java@ibatis.apache.org > > Subject: RE: How to get table metadata? > > > > > > > > Not that I know of, I tried this a while back to dynamically get my > > column names. If you find a solution please let us know. > > > > > > > > ________________________________ > > > > From: Konda, Sreenivasulu (Consultant) > > [mailto:[EMAIL PROTECTED] > > Sent: Thursday, August 18, 2005 10:06 AM > > To: user-java@ibatis.apache.org > > Subject: How to get table metadata? > > > > > > > > Hi, > > > > > > > > I would like to know whether or not we can retrieve table metadata such > > as table name, column name/type, etc... when used iBatis. > > > > > > > > In JDBC, there is a class ResultSetMetaData, which gives us the metadata > > of underlying table(s), column name, type, etc. > > > > > > > > Is there any API to get these details and how? > > > > > > > > Thanks and regards, > > > > Sreenivas > > > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > >