fc.jdbc.dbo
Class Types

java.lang.Object
  extended by fc.jdbc.dbo.Types

public class Types
extends Object

SQL and java type related functions


Constructor Summary
Types(SystemLog log, PropertyMgr props)
          Constructs a new object.
 
Method Summary
 String getJavaTypeFromSQLType(int java_sql_type, fc.jdbc.dbo.ColumnData cd)
          Converts a value corresponding to Type to the Java type used to represent that type.
 String getPreparedStmtSetMethod(int java_sql_type, String psvar, String pos, String varname, fc.jdbc.dbo.ColumnData cd)
          Returns a suitable setXXX method name to set the prepared statement placeholder data for some column.
 String getPreparedStmtSetNullMethod(int java_sql_type, String pos, String varname, fc.jdbc.dbo.ColumnData cd)
           
 String getResultSetMethod(int java_sql_type, String pos, fc.jdbc.dbo.ColumnData cd)
          Returns a suitable getResultXXX method name to retrieve the data for some column.
 String getRuntimeResultSetMethod(int java_sql_type, String name, fc.jdbc.dbo.ColumnData cd)
          Returns a suitable getResultXXX method name to retrieve the data for some column (which will use a runtime prefix argument prepended to the column name).
 String getSQLTypeName(int java_sql_type)
          Converts the Type for some column (returned by the driver) to a readable value.
 boolean usesPrimitiveJavaType(int java_sql_type, fc.jdbc.dbo.ColumnData cd)
          Uses the same conversion criteria as the getJavaTypeFromSQLType() and then returns true if the Java type used to represent the specified Type is primitive (int, boolean etc) as opposed to an Object type.
 boolean usesSimpleIntegralJavaType(int java_sql_type)
          Uses the same conversion criteria as the getJavaTypeFromSQLType() and then returns true if the Java type used to represent the specified Type is integral.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Types

public Types(SystemLog log,
             PropertyMgr props)
Constructs a new object.

Parameters:
log - logging destination
props - PropertyManager that may contain:
  • dbspecific.mysql.boolean_hack
  • generate.preparedstatement.setxxx.length_param
If the above key values are missing, then the defaults are used (see usage info for Generate)
Method Detail

getResultSetMethod

public String getResultSetMethod(int java_sql_type,
                                 String pos,
                                 fc.jdbc.dbo.ColumnData cd)
                          throws SQLException
Returns a suitable getResultXXX method name to retrieve the data for some column. Used when generating manager code.

Parameters:
java_sql_type - the Type corresponding to the column for which the method will be generated
pos - A string containing the column index number (starts from 1)
Throws:
SQLException

getRuntimeResultSetMethod

public String getRuntimeResultSetMethod(int java_sql_type,
                                        String name,
                                        fc.jdbc.dbo.ColumnData cd)
                                 throws SQLException
Returns a suitable getResultXXX method name to retrieve the data for some column (which will use a runtime prefix argument prepended to the column name).

Parameters:
java_sql_type - the Type corresponding to the column for which the method will be generated
name - column name
Throws:
SQLException

getPreparedStmtSetMethod

public String getPreparedStmtSetMethod(int java_sql_type,
                                       String psvar,
                                       String pos,
                                       String varname,
                                       fc.jdbc.dbo.ColumnData cd)
                                throws SQLException
Returns a suitable setXXX method name to set the prepared statement placeholder data for some column. Used when generating manager code. For example, for an integer column at position 3 and a variable name "x" (which would contain a integer value at runtime), the returned method will be of the form: "setInt(3, x)"

Parameters:
java_sql_type - the Type corresponding to the column for which the method will be generated
pos - a String containing the column index number (starts from 1) or a runtime value to insert in generate code like "pos++"
varname - the name of the variable containing the value to be set at runtime.
Throws:
SQLException

getPreparedStmtSetNullMethod

public String getPreparedStmtSetNullMethod(int java_sql_type,
                                           String pos,
                                           String varname,
                                           fc.jdbc.dbo.ColumnData cd)
                                    throws SQLException
Throws:
SQLException

getJavaTypeFromSQLType

public String getJavaTypeFromSQLType(int java_sql_type,
                                     fc.jdbc.dbo.ColumnData cd)
                              throws SQLException
Converts a value corresponding to Type to the Java type used to represent that type. The Sql-Type is returned by the jdbc driver for some column in a table and we map it to a corresponding java type that will be used to represent/work with that sql type in our java programs. This mapping follows the JDBC guidelines. Similar JDBC API method like ResultSetMetaData#getColumnTypeName(column) and DatabaseMetaData#getColumns() return tpye names that can be driver/db specific (and don't have to correspond to Java types anyway).

Parameters:
java_sql_type - the Type to convert to a java language type
cd - used to find out if the column is nullable (this can have the effect of using primitive or object types, in some cases, for example, Boolean vs boolean)
Throws:
SQLException

usesPrimitiveJavaType

public boolean usesPrimitiveJavaType(int java_sql_type,
                                     fc.jdbc.dbo.ColumnData cd)
                              throws SQLException
Uses the same conversion criteria as the getJavaTypeFromSQLType() and then returns true if the Java type used to represent the specified Type is primitive (int, boolean etc) as opposed to an Object type.

Parameters:
java_sql_type - the Type for the corresponding java type.
cd - used to find out if the column is nullable (this can have the effect of using primitive or object types, in some cases, for example, Boolean vs boolean)
Throws:
SQLException

usesSimpleIntegralJavaType

public boolean usesSimpleIntegralJavaType(int java_sql_type)
                                   throws SQLException
Uses the same conversion criteria as the getJavaTypeFromSQLType() and then returns true if the Java type used to represent the specified Type is integral. This is used for creating the inc/dec methods (only for short, int and long)

Parameters:
java_sql_type - the Type for the corresponding java type
Throws:
SQLException

getSQLTypeName

public String getSQLTypeName(int java_sql_type)
Converts the Type for some column (returned by the driver) to a readable value. More convenient than using the "constant field values" section of the not neatly arranged javadocs for Type.

Note, this method is different from because unlike , this simply returns the variable name corresponding to the parameter value (for example, java.sql.Type.INTEGER == 4 and passing 4 to this method will return "INTEGER").

Parameters:
java_sql_type - a type from Type