diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/DbConnStrForMSSQL.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/DbConnStrForMSSQL.java new file mode 100644 index 0000000000..c09756c198 --- /dev/null +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/DbConnStrForMSSQL.java @@ -0,0 +1,75 @@ +// ============================================================================ +// +// Copyright (C) 2006-2016 Talend Inc. - www.talend.com +// +// This source code is available under agreement available at +// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt +// +// You should have received a copy of the agreement +// along with this program; if not, write to Talend SA +// 9 rue Pages 92150 Suresnes, France +// +// ============================================================================ +package org.talend.core.database.conn.template; + +import org.talend.core.database.EDatabaseTypeName; +import org.talend.core.database.conn.version.EDatabaseVersion4Drivers; + +/** + * @author hWang + * @version 1.0 jdk1.6 + * @date Aug 8, 2016 + */ +public class DbConnStrForMSSQL extends DbConnStr { + + private static final String URL_MSSQL = "jdbc:jtds:sqlserver://:/;"; //$NON-NLS-1$ + + public static final String URL_MSSQL_2012 = "jdbc:jtds:sqlserver://:/;";//$NON-NLS-1$ + + private static final String URL_MSSQL_PROP = "jdbc:sqlserver://:;DatabaseName=;";//$NON-NLS-1$ + + /** + * DOC Marvin DbConnStrForHive constructor comment. + * + * @param dbType + * @param urlTemplate + */ + DbConnStrForMSSQL(EDatabaseTypeName dbType, String urlTemplate) { + super(dbType, urlTemplate); + } + + public DbConnStrForMSSQL(EDatabaseTypeName dbType, String urlTemplate,String port, EDatabaseVersion4Drivers[] hiveModes) { + super(dbType, urlTemplate,port, hiveModes); + } + + @Override + String getUrlTemplate(EDatabaseVersion4Drivers version) { + if (version == null) { + return super.getUrlTemplate(version); + } + switch (version) { + case MSSQL: + return URL_MSSQL; + case MSSQL_2012: + return URL_MSSQL_2012; + case MSSQL_PROP: + return URL_MSSQL_PROP; + default: + return super.getUrlTemplate(version); + } + } + + @Override + String getUrlPattern(EDatabaseVersion4Drivers version) { + switch (version) { + case MSSQL: + return calcPattern(URL_MSSQL); + case MSSQL_2012: + return calcPattern(URL_MSSQL_2012); + case MSSQL_PROP: + return calcPattern(URL_MSSQL_PROP); + default: + return super.getUrlPattern(version); + } + } +} diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/EDatabaseConnTemplate.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/EDatabaseConnTemplate.java index a4a5e15f19..a0856aae98 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/EDatabaseConnTemplate.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/template/EDatabaseConnTemplate.java @@ -66,10 +66,11 @@ public enum EDatabaseConnTemplate { "")), //$NON-NLS-1$ ORACLE_OCI(new DbConnStr(EDatabaseTypeName.ORACLE_OCI, // - "jdbc:oracle:oci8:@")), //$NON-NLS-1$ - MSSQL(new DbConnStr(EDatabaseTypeName.MSSQL, // - "jdbc:jtds:sqlserver://:/;", //$NON-NLS-1$ - "1433")), //$NON-NLS-1$ + "jdbc:oracle:oci8:@")), //$NON-NLS-1$ + + MSSQL(new DbConnStrForMSSQL(EDatabaseTypeName.MSSQL, "jdbc:jtds:sqlserver://:/;", //$NON-NLS-1$ + "1433", new EDatabaseVersion4Drivers[] { EDatabaseVersion4Drivers.MSSQL, EDatabaseVersion4Drivers.MSSQL_2012, + EDatabaseVersion4Drivers.MSSQL_PROP})), MSSQL05_08(new DbConnStr(EDatabaseTypeName.MSSQL05_08, // "jdbc:sqlserver://:;DatabaseName=", //$NON-NLS-1$ "1433")), //$NON-NLS-1$ diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/version/EDatabaseVersion4Drivers.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/version/EDatabaseVersion4Drivers.java index 80992b85af..5a2b6e8b23 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/version/EDatabaseVersion4Drivers.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/version/EDatabaseVersion4Drivers.java @@ -75,11 +75,11 @@ public enum EDatabaseVersion4Drivers { MYSQL_4(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 4", "MYSQL_4", "mysql-connector-java-3.1.14-bin.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ MARIADB(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MariaDB", "MARIADB", "mariadb-java-client-1.1.7.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // add for 9594 - MSSQL(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,"JTDS", "JTDS", "jtds-1.3.1-patch.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + MSSQL(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,"Open source JTDS", "JTDS", "jtds-1.3.1-patch.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ MSSQL_2012(new DbVersion4Drivers(EDatabaseTypeName.MSSQL, "Microsoft SQL Server 2012", "Microsoft SQL Server 2012", "jtds-1.3.1-patch.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ MSSQL_PROP(new DbVersion4Drivers(EDatabaseTypeName.MSSQL, - "MSSQL_PROP", "MSSQL_PROP", "mssql-jdbc.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + "Microsoft", "MSSQL_PROP", "mssql-jdbc.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ VERTICA_7(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 7.0.x", "VERTICA_7_0_X", "vertica-jdbc-7.0.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ VERTICA_6_1_X(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 6.1.x", "VERTICA_6_1_X", "vertica-jdk5-6.1.2-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ diff --git a/main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java b/main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java index d84ede0013..187ae38657 100644 --- a/main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java +++ b/main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java @@ -950,6 +950,9 @@ public class ExtractMetaDataUtils { } else if (EDatabaseTypeName.MYSQL.getXmlName().equals(dbType) && (EDatabaseVersion4Drivers.MARIADB.getVersionValue().equals(dbVersion))) { driverClassName = EDatabase4DriverClassName.MARIADB.getDriverClass(); + }else if(EDatabaseTypeName.MSSQL.getDisplayName().equals(dbType) + && EDatabaseVersion4Drivers.MSSQL_PROP.getVersionValue().equals(dbVersion)){ + driverClassName = EDatabase4DriverClassName.MSSQL2.getDriverClass(); } } } else { diff --git a/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java b/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java index 445b307086..3e3b60d8c3 100644 --- a/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java +++ b/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java @@ -2838,6 +2838,9 @@ public class DatabaseForm extends AbstractForm { * @return */ private List getVersionDrivers(String dbType) { + if(asMsSQLVersionEnable()){ + return getMSSQLVersionDrivers(dbType); + } List result = new ArrayList(); List v4dList = EDatabaseVersion4Drivers.indexOfByDbType(dbType); for (EDatabaseVersion4Drivers v4d : v4dList) { @@ -2847,6 +2850,13 @@ public class DatabaseForm extends AbstractForm { } return result; } + + private List getMSSQLVersionDrivers(String dbType) { + List result = new ArrayList(); + result.add(EDatabaseVersion4Drivers.MSSQL.getVersionDisplay()); + result.add(EDatabaseVersion4Drivers.MSSQL_PROP.getVersionDisplay()); + return result; + } private void addFieldsForGeneralDB(Composite parent) { @@ -3493,6 +3503,7 @@ public class DatabaseForm extends AbstractForm { || EDatabaseConnTemplate.PLUSPSQL.getDBDisplayName().equals(dbTypeCombo.getText()) || EDatabaseConnTemplate.VERTICA.getDBDisplayName().equals(dbTypeCombo.getText()) || EDatabaseConnTemplate.PSQL.getDBDisplayName().equals(dbTypeCombo.getText()) + || EDatabaseConnTemplate.MSSQL.getDBDisplayName().equals(dbTypeCombo.getText()) || EDatabaseConnTemplate.IMPALA.getDBDisplayName().equals(dbTypeCombo.getText()); } @@ -4379,7 +4390,7 @@ public class DatabaseForm extends AbstractForm { boolean isSAPHana = asSAPHanaVersionEnable(); boolean isImpala = ImpalaVersionEnable(); boolean isMsSQL = asMsSQLVersionEnable(); - + String selectedVersion = getConnection().getDbVersionString(); dbVersionCombo.removeAll(); dbVersionCombo.setHideWidgets(true);