6ef24b9981cdcc65774a62929ff3490a80053988
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / types / SqlServer2005DatabaseType.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.database.types;
11
12 import eu.etaxonomy.cdm.database.ICdmDataSource;
13
14
15 /**
16 * @author a.mueller
17 *
18 */
19 public class SqlServer2005DatabaseType extends DatabaseTypeBase {
20
21 //name
22 protected String typeName = "SQL Server";
23
24 //driver class
25 protected String classString = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
26
27 //url
28 protected String urlString = "jdbc:sqlserver://";
29
30 //[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
31
32 //default port
33 protected int defaultPort = 1433;
34
35 //hibernate dialect
36 protected String hibernateDialect = "SQLServerDialect";
37
38 public String getConnectionString(ICdmDataSource ds, int port){
39 return getConnectionString(ds, port, null);
40 }
41
42 public String getConnectionString(ICdmDataSource ds, int port, String instanceName){
43 String instance = "";
44 if (instanceName != null && ! instanceName.equals("")){
45 instance = "\\" + instanceName;
46 }
47 return urlString + ds.getServer() + instance + ":" + port + ";databaseName=" + ds.getDatabase() +";SelectMethod=cursor";
48 }
49
50
51 /* (non-Javadoc)
52 * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)
53 */
54 @Override
55 public String getServerNameByConnectionString(String connectionString) {
56 String dbSeparator = ";";
57 return super.getServerNameByConnectionString(connectionString, urlString, dbSeparator);
58 }
59
60
61 /* (non-Javadoc)
62 * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getPortByConnectionString(java.lang.String)
63 */
64 @Override
65 public int getPortByConnectionString(String connectionString) {
66 String dbSeparator = ";";
67 return getPortByConnectionString(connectionString, urlString, dbSeparator);
68 }
69
70 /* (non-Javadoc)
71 * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)
72 */
73 @Override
74 public String getDatabaseNameByConnectionString(String connectionString){
75 String result;
76 String dbStart = ";databaseName=";
77 int posDbStart = connectionString.indexOf(dbStart);
78 result = connectionString.substring(posDbStart + dbStart.length());
79 int posNextAttr = result.indexOf(";");
80 if (posNextAttr != 0){
81 result = result.substring(0, posNextAttr);
82 }
83 return result;
84 }
85
86 //Constructor
87 public SqlServer2005DatabaseType() {
88 init (typeName, classString, urlString, defaultPort, hibernateDialect );
89 }
90
91 }