java.sql.Statement

Интерфейс java.sql.Statement предназначен для передачи СУБД SQL-запросов (под SQL-запросом понимается не только текст запроса, но и такие характеристики, как параметры и состояние запроса).

Особенности:

  1. имена функций от EXTFILE (FILENAME, FILESIZE, FILETIME) в SQL-операторах, используемых в данном интерфейсе, должны обрамляться двойными кавычками;

  2. допускаются следующие значения логического типа: 0, 1, false, true, T, F;

  3. поддерживаемые форматы дат:

    • dd-MM-yyyy:HH:mm:ss.SS;

    • dd-MON-yyyy:HH:mm:ss.SS;

    • dd.MM.yyyy:HH:mm:ss.SS;

    • dd/MM/yyyy:HH:mm:ss.SS;

    • yyyy-MM-dd:HH:mm:ss.SS;

    • yyyyMMdd.

    Дополнительно проверяется возможное совпадение со стандартными форматами дат классов java.sql.Time и java.sql.Timestamp: yyyy-mm-dd hh:mm:ss.ffffffff и hh:mm:ss, соответственно.

  4. для учета регистрозависимости идентификаторов их следует обрамлять двойными кавычками, например:

    String user = "\"admin\"";
    String password = "\"эюя\"";
    

Пример

import java.sql.*;
import com.relx.jdbc.LinterDriver;

public class StatementDemo
{
  public static void main(String[] args)
  {
    try
    {
      Driver d =
      (Driver) Class.forName("com.relx.jdbc.LinterDriver").newInstance();

      String address = "jdbc:linter:linapid:localhost:1070:DEMO";
      String user = "SYSTEM";
      String password = "MANAGER8";
      System.out.println("Driver found. Now connecting to database ");
      Connection con =
                    DriverManager.getConnection(address, user, password);

      System.out.println(" Connection established ... ");
      Statement stmt = con.createStatement();

      System.out.println(" Statement created ... ");
      ResultSet results;

      // DROP/CREATE TABLE
      stmt.executeUpdate("create table test1 (a int, b char(20));");
      // INSERT
      stmt.executeUpdate("insert into test1 values(1, 'First string');");
      stmt.executeUpdate("insert into test1 values(2, 'Another string');");
      results = stmt.executeQuery("select * from test1;");
      System.out.println(" Result set retrieved... ");
      while (results.next())
      {
        // Loop through each column, getting the column
        // data and displaying
        System.out.print("| " + results.getInt(1));
        System.out.println("| " + results.getString(2) + " |");
      }
      results.close();
      try
      {
        stmt.executeUpdate("drop table test1;");
      }
      catch (SQLException e)
      {
        System.out.println("Error deleting table:" + e.getMessage());
      }
      con.close();
    }
    catch (Exception e)
    {
      System.out.println("Catched :" + e + " mess= " + e.getMessage());
      e.printStackTrace();
    }
  }
}