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: [email protected]
> 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: [email protected]
> > 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: [email protected]
> > 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
>
>