Class SQLServerAdapter
java.lang.Object
org.apache.cayenne.dba.JdbcAdapter
org.apache.cayenne.dba.sybase.SybaseAdapter
org.apache.cayenne.dba.sqlserver.SQLServerAdapter
- All Implemented Interfaces:
DbAdapter
Cayenne DbAdapter implementation for Microsoft SQL Server engine.
Microsoft Driver Settings
Sample connection settings to use with MS SQL Server are shown below:
sqlserver.jdbc.username = test
sqlserver.jdbc.password = secret
sqlserver.jdbc.url = jdbc:sqlserver://192.168.0.65;databaseName=cayenne;SelectMethod=cursor
sqlserver.jdbc.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
Note on case-sensitive LIKE: if your application requires case-sensitive LIKE support, ask your DBA to configure the database to use a case-senstitive collation (one with "CS" in symbolic collation name instead of "CI", e.g. "SQL_Latin1_general_CP1_CS_AS").
jTDS Driver Settings
jTDS is an open source driver that can be downloaded from http://jtds.sourceforge.net . It supports both SQLServer and Sybase. Sample SQLServer settings are the following:
sqlserver.jdbc.username = test
sqlserver.jdbc.password = secret
sqlserver.jdbc.url = jdbc:jtds:sqlserver://192.168.0.65/cayenne
sqlserver.jdbc.driver = net.sourceforge.jtds.jdbc.Driver
- Since:
- 1.1
-
Field Summary
Fields inherited from class JdbcAdapter
caseInsensitiveCollations, ejbqlTranslatorFactory, extendedTypes, logger, quotingStrategy, resourceLocator, supportsBatchUpdates, supportsGeneratedKeys, supportsUniqueConstraints, typesHandlerModifier and TypeFieldDescriptionprotected booleanprotected EJBQLTranslatorFactoryprotected ExtendedTypeMapprotected JdbcEventLoggerprotected QuotingStrategyprotected ResourceLocatorprotected booleanprotected booleanprotected booleanprotected TypesHandler -
Constructor Summary
ConstructorsConstructorDescriptionSQLServerAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidInstalls appropriate ExtendedTypes as converters for passing values between JDBC and Java layers.createUniqueConstraint(DbEntity source, Collection<DbAttribute> columns) Generates DDL to create unique index that allows multiple NULL values to comply with ANSI SQL, that is default behaviour for other RDBMS.Uses SQLServerActionBuilder to create the right action.voidsetVersion(Integer version) booleanNot supported, see: mssql-jdbc #245Methods inherited from class SybaseAdapter
bindParameter, createEJBQLTranslatorFactory, createQuotingStrategy, createTableAppendColumn, getBatchTerminatorModifier and TypeMethodDescriptionvoidbindParameter(PreparedStatement statement, ParameterBinding binding) Binds an object value to PreparedStatement's parameter.protected EJBQLTranslatorFactoryCreates and returns anEJBQLTranslatorFactoryused to generate visitors for EJBQL to SQL translations.protected QuotingStrategyvoidcreateTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column) Overrides super implementation to correctly set up identity columns.Returns word "go".Methods inherited from class JdbcAdapter
buildAttribute, createFkConstraint, createTable, createTableAppendPKClause, dropTableStatements, externalTypesForJdbcType, findResource, getEjbqlTranslatorFactory, getExtendedTypes, getJdbcEventLogger, getPkGenerator, getQuotingStrategy, getSelectTranslator, getType, initExtendedTypes, setEjbqlTranslatorFactory, setPkGenerator, setSupportsBatchUpdates, setSupportsGeneratedKeys, setSupportsUniqueConstraints, sizeAndPrecision, supportsBatchUpdates, supportsCatalogsOnReverseEngineering, supportsGeneratedKeys, supportsUniqueConstraints, tableTypeForTable, tableTypeForView, typeSupportsLength, typeSupportsScale, unwrapModifier and TypeMethodDescriptionbuildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls) Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).Returns a SQL string that can be used to create a foreign key constraint for the relationship.createTable(DbEntity entity) Returns a SQL string that can be used to create database table corresponding toentparameter.protected voidcreateTableAppendPKClause(StringBuffer sqlBuffer, DbEntity entity) dropTableStatements(DbEntity table) Returns a collection of SQL statements needed to drop a database table.String[]externalTypesForJdbcType(int type) Returns an array of RDBMS types that can be used with JDBCtype.protected URLfindResource(String name) Locates and returns a named adapter resource.Returns a translator factory for EJBQL to SQL translation.Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.Returns primary key generator associated with this DbAdapter.Returns SQL identifier quoting strategy objectgetSelectTranslator(FluentSelect<?, ?> query, EntityResolver entityResolver) static StringgetType(DbAdapter adapter, DbAttribute column) protected voidinitExtendedTypes(List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ValueObjectTypeRegistry valueObjectTypeRegistry) voidsetEjbqlTranslatorFactory(EJBQLTranslatorFactory ejbqlTranslatorFactory) Sets a translator factory for EJBQL to SQL translation.voidsetPkGenerator(PkGenerator pkGenerator) Sets new primary key generator.voidsetSupportsBatchUpdates(boolean flag) voidsetSupportsGeneratedKeys(boolean flag) voidsetSupportsUniqueConstraints(boolean flag) static StringsizeAndPrecision(DbAdapter adapter, DbAttribute column) booleanReturnstrueif the target database supports batch updates.booleanReturns true.booleanReturns true if a target database supports key autogeneration.booleanReturns true.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.booleantypeSupportsLength(int type) Returns true if supplied type can have a length attribute as a part of column definitionbooleantypeSupportsScale(int type) Returns true if supplied type can have a scale attribute as a part of column definition.unwrap()Simply returns this, as JdbcAdapter is not a wrapper.
-
Constructor Details
-
SQLServerAdapter
public SQLServerAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry)
-
-
Method Details
-
supportsGeneratedKeysForBatchInserts
-
getSqlTreeProcessor
- Specified by:
getSqlTreeProcessorin interfaceDbAdapter- Overrides:
getSqlTreeProcessorin classSybaseAdapter- Returns:
SQLTreeProcessorthat can adjust SQL tree to specific database flavour- Since:
- 4.2
-
configureExtendedTypes
Description copied from class:SybaseAdapterInstalls appropriate ExtendedTypes as converters for passing values between JDBC and Java layers.- Overrides:
configureExtendedTypesin classSybaseAdapter
-
getAction
-
getSystemSchemas
- Specified by:
getSystemSchemasin interfaceDbAdapter- Overrides:
getSystemSchemasin classJdbcAdapter- Returns:
- list of system schemas
-
getSystemCatalogs
- Specified by:
getSystemCatalogsin interfaceDbAdapter- Overrides:
getSystemCatalogsin classJdbcAdapter- Returns:
- list of system catalogs
-
getVersion
-
setVersion
- Parameters:
version- of the server as provided by the JDBC driver- Since:
- 4.2
-
createUniqueConstraint
Generates DDL to create unique index that allows multiple NULL values to comply with ANSI SQL, that is default behaviour for other RDBMS.
Example:CREATE UNIQUE NONCLUSTERED INDEX _idx_entity_attribute ON entity(attribute) WHERE attribute IS NOT NULL- Specified by:
createUniqueConstraintin interfaceDbAdapter- Overrides:
createUniqueConstraintin classJdbcAdapter- Parameters:
source- entity for the indexcolumns- source columns for the index- Returns:
- DDL to create unique index
- Since:
- 4.2.1
-