uk.ac.starlink.table.jdbc
Class JDBCFormatter

java.lang.Object
  extended byuk.ac.starlink.table.jdbc.JDBCFormatter

public class JDBCFormatter
extends Object

Handles conversion of a StarTable into a new table in an RDBMS.


Nested Class Summary
static class JDBCFormatter.SqlColumn
          Describes a column as it will be written to a table in an RDBMS.
 
Constructor Summary
JDBCFormatter(Connection conn, StarTable table)
          Constructor.
 
Method Summary
 void createJDBCTable(String tableName, WriteMode mode)
          Writes data from this formatter's input table into the database.
 JDBCFormatter.SqlColumn getColumn(int icol)
          Returns the SqlColumn object describing how a given column of this formatter's input table will be written into the RDBMS.
 String getCreateStatement(String tableName)
          Returns the text of a suitable CREATE TABLE statement.
 String getInsertStatement(String tableName)
          Returns the text of a suitable parametric statement for inserting a row.
 int getSqlType(Class clazz)
          Returns an SQL type code suitable for a given class.
static void main(String[] args)
          Main method.
 String typeName(int sqlType)
          Returns the name used by the connection's database to reference a JDBC type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCFormatter

public JDBCFormatter(Connection conn,
                     StarTable table)
              throws SQLException,
                     IOException
Constructor.

Parameters:
conn - JDBC connection
table - input table
Method Detail

getCreateStatement

public String getCreateStatement(String tableName)
Returns the text of a suitable CREATE TABLE statement.

Parameters:
tableName - name of the new SQL table

getInsertStatement

public String getInsertStatement(String tableName)
Returns the text of a suitable parametric statement for inserting a row. Data placeholders for writable columns will be represented by '?' characters.

Parameters:
tableName - name SQL table for insertion

createJDBCTable

public void createJDBCTable(String tableName,
                            WriteMode mode)
                     throws IOException,
                            SQLException
Writes data from this formatter's input table into the database. This method is somewhat misnamed - depending on the write mode, a new table may or may not be created in the database.

Parameters:
tableName - name of the new table to write to in the database
mode - mode for writing records
Throws:
IOException
SQLException

getColumn

public JDBCFormatter.SqlColumn getColumn(int icol)
Returns the SqlColumn object describing how a given column of this formatter's input table will be written into the RDBMS. If the value for a given column is null, it means that column cannot, and will not, be written.

Parameters:
icol - column index in input table
Returns:
SQL column description

getSqlType

public int getSqlType(Class clazz)
Returns an SQL type code suitable for a given class.

Parameters:
clazz - java class of data
Returns:
one of the Types codes

typeName

public String typeName(int sqlType)
                throws SQLException
Returns the name used by the connection's database to reference a JDBC type.

Parameters:
sqlType - type id (as per Types)
Returns:
connection-specific type name
Throws:
SQLException

main

public static void main(String[] args)
                 throws IOException,
                        SQLException
Main method. Not really intended for use but may be helpful with debugging.

Throws:
IOException
SQLException

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.