Class Types

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

public class Types extends Object
SQL and java type related functions
  • Constructor Details

    • 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 Details

    • 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 Types 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 Types 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 Types 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 Types 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(String,String,String,String) return tpye names that can be driver/db specific (and don't have to correspond to Java types anyway).
      Parameters:
      java_sql_type - the Types 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(int, ColumnData) and then returns true if the Java type used to represent the specified Types is primitive (int, boolean etc) as opposed to an Object type.
      Parameters:
      java_sql_type - the Types 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(int, ColumnData) and then returns true if the Java type used to represent the specified Types is integral. This is used for creating the inc/dec methods (only for short, int and long)
      Parameters:
      java_sql_type - the Types for the corresponding java type
      Throws:
      SQLException
    • getSQLTypeName

      public String getSQLTypeName(int java_sql_type)
      Converts the Types 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 Types.

      Note, this method 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 Types