|
41) Can I ensure that my app has the latest
data?
Typically an application retrieves multiple
rows of data, providing a snapshot at an instant of time. Before a particular
row is operated upon, the actual data may have been modified by another
program. When it is essential that the most recent data is provided, a JDBC
2.0 driver provides the ResultSet.refreshRow method.
42) What does normalization mean for
java.sql.Date and
java.sql.Time?
These classes are thin wrappers extending
java.util.Date, which has both date and time components. java.sql.Date should
carry only date information and a normalized instance has the time information
set to zeros. java.sql.Time should carry only time information and a
normalized instance has the date set to the Java epoch ( January 1, 1970 ) and
the milliseconds portion set to zero.
43) What's the best way, in terms of
performance, to do multiple insert/update statements, a PreparedStatement or
Batch Updates?
Because PreparedStatement objects are
precompiled, their execution can be faster than that of Statement objects.
Consequently, an SQL statement that is executed many times is often created as
a PreparedStatement object to increase efficiency.
A CallableStatement object provides a way to
call stored procedures in a standard manner for all DBMSes. Their execution
can be faster than that of PreparedStatement object.
Batch updates are used when you want to
execute multiple statements together. Actually, there is no conflict here.
While it depends on the driver/DBMS engine as to whether or not you will get
an actual performance benefit from batch updates, Statement,
PreparedStatement, and CallableStatement can all execute the addBatch()
method.
44) What is
JDO?
JDO provides for the transparent persistence
of data in a data store agnostic manner, supporting object, hierarchical, as
well as relational stores.
45) What is the difference between
setMaxRows(int) and SetFetchSize(int)? Can either reduce processing
time?
setFetchSize(int) defines the number of rows
that will be read from the database when the ResultSet needs more rows. The
method in the java.sql.Statement interface will set the 'default' value for
all the ResultSet derived from that Statement; the method in the
java.sql.ResultSet interface will override that value for a specific
ResultSet. Since database fetches can be expensive in a networked environment,
fetch size has an impact on performance.
setMaxRows(int) sets the limit of the maximum
nuber of rows in a ResultSet object. If this limit is exceeded, the excess
rows are "silently dropped". That's all the API says, so the setMaxRows method
may not help performance at all other than to decrease memory usage. A value
of 0 (default) means no limit.
46) What is DML?
DML is an abbreviation for Data Manipulation
Language. This portion of the SQL standard is concerned with manipulating the
data in a database as opposed to the structure of a database. The core verbs
for DML are SELECT, INSERT, DELETE, UPDATE, COMMIT and
ROLLBACK.
47) What is DDL?
DDL is an abbreviation for Data Definition
Language. This portion of the SQL standard is concerned with the creation,
deletion and modification of database objects like tables, indexes and views.
The core verbs for DDL are CREATE, ALTER and DROP. While most DBMS engines
allow DDL to be used dynamically ( and available to JDBC ), it is often not
supported in transactions.
48) How can I get information about foreign
keys used in a table?
DatabaseMetaData.getImportedKeys() returns a ResultSet with data about
foreign key columns, tables, sequence and update and delete
rules.
49) How do I disallow NULL values in a
table?
Null capability is a column integrity
constraint, normally aplied at table creation time. Note that some databases
won't allow the constraint to be applied after table creation. Most databases
allow a default value for the column as well. The following SQL statement
displays the NOT NULL constraint:
CREATE TABLE CoffeeTable (
Type VARCHAR(25) NOT NULL,
Pounds INTEGER NOT NULL,
Price NUMERIC(5, 2) NOT NULL
)
50) What isolation level is used by the
DBMS when inserting, updating and selecting rows from a
database?
The answer depends on both your code and the
DBMS. If the program does not explicitly set the isolation level, the DBMS
default is used. You can determine the default using
DatabaseMetaData.getDefaultTransactionIsolation() and the level for the
current Connection with Connection.getTransactionIsolation(). If the default
is not appropriate for your transaction, change it with
Connection.setTransactionIsolation(int level).
java6 ejb3 jsf hibernate eclipse ajax groovy spring seam java struts webservice j2me guice java5 jca tapestry soa linux ria books
|