Informix JDBC Driver Programmer's Guide
Appendix A: Sample Code
Contents
Index
RSMetaData.java
/***************************************************************************
*
* Title: RSMetaData.java
*
* Description: Demo a resultsetmetadata operation
*
* An example of running the program:
*
* java DBMetaData
* 'jdbc:informix- sqli://emily:1533:informixserver=emily3;user=rdtest;password=test'
*
* Expected result:
*
* >>>Simple resultsetmetadata operation test.
* URL = "jdbc:informix- sqli://emily:1533/testDB:informixserver=emily3;user=rdtest;password=test"
* table_cat
* table_schem
* table_name
* column_name
* data_type
* type_name
* column_size
* buffer_length
* decimal_digits
* num_prec_radix
* nullable
* remarks
* column_def
* sql_data_type
* sql_datetime_sub
* char_octet_length
* ordinal_position
* testDB
*
* test1
* c1
* 4
* int
* int
* 0
* 0
* 0
* 0
* <null><null><null><null><null><null>testDB
*
* test1
* c2
* 8
* double
* double
* 0
* 0
* 0
* 0
* <null><null><null><null><null><null>testDB
*
* test1
* c3
* 1
* char
* char
* 0
* 0
* 0
* 0
* <null><null><null><null><null><null>testDB
*
* test1
* c4
* 12
* varchar
* varchar
* 0
* 0
* 0
* 0
* <null><null><null><null><null><null>
* >>>End of Simple resultsetmetadata operation test.
*
***************************************************************************
*/
import java.sql.*;
import java.util.*;
import java.math.BigDecimal ;
import java.io.*;
import java.lang.*;
public class RSMetaData {
public static void main(String[] args)
{
if (args.length == 0)
{
System.out.println("ERROR: connection URL must be provided in order to run the demo!");
return;
}
String url = args[0];
StringTokenizer st = new StringTokenizer(url, ":");
String token;
String newUrl = "";
for (int i = 0; i < 4; ++i)
{
if (!st.hasMoreTokens())
{
System.out.println("ERROR: incorrect URL format!");
return;
}
token = st.nextToken();
if (newUrl != "")
newUrl += ":";
newUrl += token;
}
newUrl += "/testDB";
while (st.hasMoreTokens())
{
newUrl += ":" + st.nextToken();
}
Connection conn = null;
int rc;
String cmd=null;
Statement stmt = null;
String testName = "Simple resultsetmetadata operation";
System.out.println(">>>" + testName + " test.");
System.out.println("URL = \"" + newUrl + "\"");
try
{
Class.forName("com.informix.jdbc.IfxDriver");
}
catch (Exception e)
{
System.out.println("ERROR: failed to load Informix JDBC driver.");
}
try
{
conn = DriverManager.getConnection(newUrl);
}
catch (SQLException e)
{
System.out.println("ERROR: failed to connect!");
}
try
{
Statement stmt1=conn.createStatement();
stmt1.executeUpdate("drop table test1");
}
catch (SQLException e){ }
try
{
ResultSet rs ;
DatabaseMetaData dmd ;
stmt = conn.createStatement();
dmd = conn.getMetaData();
stmt.executeUpdate (
"create table test1 (c1 integer, c2 float, c3 char(10), " +
"c4 varchar(20) ) ") ;
rs = dmd.getColumns( null, null, "test1" , "%" ) ;
ResultSetMetaData rsmd = rs.getMetaData();
int ncols = rsmd.getColumnCount();
int i,type;
String s = null;
for (i = 1; i < ncols ; i++)
{
System.out.println(rsmd.getColumnLabel(i));
}
while (rs.next())
{
for (i = 1; i < ncols; i++)
{
type = rsmd.getColumnType(i);
switch (type)
{
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR:
s = rs.getString(i);
break;
case Types.SMALLINT:
short v1 = rs.getShort( i ) ;
if( !rs.wasNull() ) s = "" + v1 ;
break;
case Types.FLOAT:
float v2 = rs.getFloat( i ) ;
if( !rs.wasNull() ) s = "" + v2 ;
break;
}
if (rs.wasNull() )
{
System.out.print( "<null>" ) ;
}
else
{
System.out.println( s.trim() ) ;
}
}
}
}
catch (SQLException e)
{
System.out.println("ERROR: execution failed - statement: " + cmd);
System.out.println("ERROR: " + e.getMessage());
}
System.out.println("\n>>>End of " + testName + " test.");
try
{
Statement stmt2 = conn.createStatement() ;
stmt2.executeUpdate("drop table test1");
}
catch (SQLException e){ }
}
}
Informix JDBC Driver Programmer's Guide
, Version 1.22
Copyright © 1998, Informix Software, Inc. All rights reserved.