| 
     
  
 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.Statement; 
 
public class Main { 
  public static void main(String[] args) throws Exception { 
    Connection conn = getConnection(); 
 
    Statement st = conn.createStatement(); 
 
    st.executeUpdate("create table survey (id int,myDate DATE);"); 
    String INSERT_RECORD = "insert into survey(id, myDate) values(?, ?)"; 
 
    PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD); 
    pstmt.setString(1, "1"); 
    java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime()); 
    pstmt.setDate(2, sqlDate); 
 
    pstmt.executeUpdate(); 
 
    ResultSet rs = st.executeQuery("SELECT * FROM survey"); 
 
    ResultSetMetaData rsmd = rs.getMetaData(); 
 
    int numCols = rsmd.getColumnCount(); 
 
    System.out.print("\t"); 
    for (int i = 1; i <= numCols; i++) { 
      System.out.println(rsmd.getColumnLabel(i)); 
    } 
 
    System.out.print("\nAuto Increment\t"); 
    for (int i = 1; i <= numCols; i++) { 
      System.out.println(rsmd.isAutoIncrement(i)); 
    } 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isCaseSensitive(i)); 
    } 
    System.out.print("\nSearchable\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isSearchable(i)); 
    } 
    System.out.print("\nCurrency\t"); 
    for (int i = 1; i <= numCols; i++) { 
      System.out.println(rsmd.isCurrency(i)); 
    } 
    System.out.print("\nAllows nulls\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isNullable(i)); 
    } 
    System.out.print("\nSigned\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isSigned(i)); 
    } 
    System.out.print("\nRead only\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isReadOnly(i)); 
    } 
    System.out.print("\nWritable\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.print(rsmd.isWritable(i)); 
    } 
    System.out.print("\nDefinitely Writable\t"); 
    for (int i = 1; i <= numCols; i++) { 
 
      System.out.println(rsmd.isDefinitelyWritable(i)); 
    } 
 
    conn.close(); 
  } 
 
  private static Connection getConnection() throws Exception { 
    Class.forName("org.hsqldb.jdbcDriver"); 
    String url = "jdbc:hsqldb:mem:data/tutorial"; 
 
    return DriverManager.getConnection(url, "sa", ""); 
  } 
} 
 
    
   
    
    |