Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pdf / 2-JDBC

.pdf
Скачиваний:
22
Добавлен:
06.06.2015
Размер:
321.39 Кб
Скачать

Escape Syntax

Calling stored procedures

{call <procedure_name> [(<argument-list>)]}

{? = call <procedure_name> [(<argument-list>)]}

Escape characters for LIKE clauses

{escape '<escape-character>'}

stmt.executeQuery("SELECT name FROM Identifiers WHERE Id LIKE '\\_%' {escape '\\'}");

Auto Generated Keys

String keyColumn[] = {"ORDER_ID"};

...

Statement stmt = conn.createStatement();

int rows = stmt.executeUpdate(

"INSERT INTO ORDERS (ISBN, CUSTOMERID) VALUES (1502, 1)", keyColumn);

ResultSet rs = stmt.getGeneratedKeys();

boolean b = rs.next(); if (b == true) {

// retrieve the new key value

...

}

ResultSet

Виды курсоров

TYPE_FORWARD_ONLY (default) Возможно движение только вперёд

TYPE_SCROLL_INSENSITIVE

Движение в обоих направлениях и в абсолютное положение

TYPE_SCROLL_SENSITIVE

Движение в обоих направлениях и в абсолютное положение. Можно видеть изменение данных.

ResultSet Concurrency

CONCUR_READ_ONLY (default)

CONCUR_UPDATABLE

ResultSet Holdability

HOLD_CURSORS_OVER_COMMIT

CLOSE_CURSORS_AT_COMMIT

Modifying ResultSet

Updating a Row

Вдва этапа

rs.updateString

rs.updateRow Связанные методы:

rs.rowUpdated

DatabaseMetaData.ownUpdatesAreVisible(int type)

DatabaseMetaData.updatesAreDetected(int type)

Deleting a Row

rs.deleteRow() Связанные методы:

rs.rowDeleted

DatabaseMetaData.othersDeletesAreVisible(int type)

DatabaseMetaData.ownDeletesAreVisible(int type)

Inserting a Row

rs.moveToInsertRow()

rs.insertRow()

Связанные методы:

DatabaseMetaData.ownInsertsAreVisible(int type)

DatabaseMetaData.insertsAreDetected(int type)

Batch Updates

// turn off autocommit con.setAutoCommit(false);

Statement stmt = con.createStatement();

stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')"); stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')"); stmt.addBatch("INSERT INTO emp_dept VALUES (1000, 260)");

// submit a batch of update commands for execution int[] updateCounts = stmt.executeBatch();

SQL Types

SQL92 built-in types—the familiar SQL ‘column types’

CHAR

FLOAT

DATE

and so on

New built-in types — new types added by SQL99

BOOLEAN — a truth value

BLOB — a Binary Large OBject

CLOB — a Character Large OBject

User Defined Types

Structured type (CREATE TYPE PLANE_POINT AS (X FLOAT, Y FLOAT) NOT FINAL)

DISTINCT type (CREATE TYPE MONEY AS NUMERIC(10,2) FINAL)

Constructed types

REF(structured-type)

base-type ARRAY[n]

Locators

Datalink (Type for managing data external to the data source)

Custom mapping

java.util.Map map = conn.getTypeMap(); map.put("mySchemaName.AUTHORS", Class.forName("Authors")); conn.setTypeMap(map);

//-------------------------------------------------------

class Authors implements SQLData{ public String name;

public Date birth; private String sql_type;

public String getSQLTypeName() { return sql_type;

}

public void readSQL (SQLInput data, String type) throws SQLException{

sql_type = type;

name = data.readString();

birth = data.readDate();

}

public void writeSQL (SQLOutput data) throws SQLException { data.writeString(name); data.writeDate(birth);

}

}

CREATE TYPE AUTHOR AS (NAME VARCHAR(20), BIRTH DATE) NOT FINAL;

INSERT INTO AUTHORs (id, info) VALUES

(

1, NEW AUTHOR (‘Name', someDate), );

Mapping of SQL99 Types

DISTINCT — the type to which the base type is mapped

BLOB - the Blob interface Blob blob = rs.getBlob(1);

CLOB - the Clob interface

ARRAY - the Array interface Array a = rs.getArray(1);

Structured types - the Struct interface Struct struct = (Struct)rs.getObject(1);

REF(structured type) - the Ref interface Ref ref = rs.getRef(1);

Address addr = (Address)ref.getObject();

DATALINK — a java.net.URL object. java.net.URL url = rs.getURL(1);

Database Metadata

Общая информация о DataSource

Информация об поддержке различных возможностей

Предельные значения

Информация об объектах и их атрибутах в базе данных

Поддержка транзакций

Соседние файлы в папке pdf