|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.java.ao.DatabaseProvider
net.java.ao.db.MySQLDatabaseProvider
public class MySQLDatabaseProvider
| Constructor Summary | |
|---|---|
MySQLDatabaseProvider(String uri,
String username,
String password)
|
|
| Method Summary | |
|---|---|
protected String |
convertTypeToString(DatabaseType<?> type)
Converts the specified type into the database-specific DDL String value. |
Class<? extends Driver> |
getDriverClass()
Returns the JDBC Driver class which corresponds to the database being abstracted. |
protected String |
renderAppend()
Generates any database-specific options which must be appended to the end of a table definition. |
protected String |
renderAutoIncrement()
Generates the DDL fragment required to specify an INTEGER field as auto-incremented. |
protected String |
renderCreateIndex(DDLIndex index)
Generates the database-specific DDL statement required to create a new index. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public MySQLDatabaseProvider(String uri,
String username,
String password)
| Method Detail |
|---|
public Class<? extends Driver> getDriverClass()
throws ClassNotFoundException
DatabaseProviderReturns the JDBC Driver class which corresponds to the database being abstracted. This should be implemented in such a way as to initialize and register the driver with JDBC. For most drivers, this requires code in the following form:
public Class<? extends Driver> getDriverClass() {
return (Class<? extends Driver>) Class.forName("com.mysql.jdbc.Driver");
}
The following does not fire the driver's static initializer and thus will (usually) not work:
public Class<? extends Driver> getDriverClass() {
return com.mysql.jdbc.Driver.class;
}
If the driver is not on the classpath, a ClassNotFoundException
can and should be thrown (certain auto-magic configuration sections of
ActiveObjects depend upon this under certain circumstances).
getDriverClass in class DatabaseProviderDriver implementation which corresponds to the
relevant database.
ClassNotFoundExceptionprotected String convertTypeToString(DatabaseType<?> type)
DatabaseProviderDatabaseType#getDefaultName()
method. Subclass implementations should be sure to make a super
call in order to ensure that both default naming and future special
cases are handled appropriately.
convertTypeToString in class DatabaseProvidertype - The type instance to convert to a DDL string.
DatabaseType.getDefaultName()protected String renderAutoIncrement()
DatabaseProviderGenerates the DDL fragment required to specify an INTEGER field as
auto-incremented. For databases which do not support such flags (which
is just about every database exception MySQL), "" is an
acceptable return value. This method should never return null
as it would cause the field rendering method to throw a NullPointerException.
This method is abstract (as opposed to the other methods which are either defined against MySQL or simply empty) because of the vast differences in rendering auto-incremented fields across different databases. Also, it seemed like a terribly good idea at the time and I haven't found a compelling reason to change it.
renderAutoIncrement in class DatabaseProviderprotected String renderAppend()
DatabaseProviderGenerates any database-specific options which must be appended to the end of a table definition. The only database I am aware of which requires this is MySQL. For example:
CREATE TABLE test (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(45),
PRIMARY KEY(id)
) ENGINE=InnoDB;
The "ENGINE=InnoDB" clause is what is returned by
this method. The default implementation simply returns
null, signifying that no append should be rendered.
renderAppend in class DatabaseProvidernullprotected String renderCreateIndex(DDLIndex index)
DatabaseProvidernull returned.
renderCreateIndex in class DatabaseProviderindex - The index to create. This single instance contains all
of the data necessary to create the index, thus no separate
parameters (such as a DDLTable) are required.
null.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||