/******************************************************************************* * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.engine.utils; import org.apache.commons.lang.StringUtils; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.engine.define.DBDefine; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; /** * make jdbc connection string tuils * * @author hangum * */ public class MakeJDBCConnectionStringUtil { /** * make connection url * * @param userDB * @return */ public static String makeConnectionUrl(final UserDBDAO userDB) { String dbUrl = ""; if(userDB.getDBDefine() == DBDefine.MYSQL_DEFAULT) { String selectLocale = StringUtils.trimToEmpty(userDB.getLocale()); if(selectLocale.equals("") || DBLocaleUtils.NONE_TXT.equals(selectLocale)) { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB); if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "?" + userDB.getUrl_user_parameter(); } } else { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB) + "?useUnicode=false&characterEncoding=" + selectLocale; if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "&" + userDB.getUrl_user_parameter(); } } } else if(userDB.getDBDefine() == DBDefine.ORACLE_DEFAULT) { if(userDB.getExt1().equals("SID")) { // return "jdbc:oracle:thin:@%s:%s:%s"; dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB); } else if(userDB.getExt1().equals("Service Name")) { dbUrl = getPueURL("jdbc:oracle:thin:@//%s:%s/%s", userDB); } if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "?" + userDB.getUrl_user_parameter(); } } else if(userDB.getDBDefine() == DBDefine.MONGODB_DEFAULT) { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB); if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "/?" + userDB.getUrl_user_parameter(); } } else if(userDB.getDBDefine() == DBDefine.ALTIBASE_DEFAULT) { String selectLocale = StringUtils.trimToEmpty(userDB.getLocale()); if(selectLocale.equals("") || DBLocaleUtils.NONE_TXT.equals(selectLocale)) { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB); if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "?" + userDB.getUrl_user_parameter(); } } else { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB) + "?charset=" + selectLocale; if(!"".equals(userDB.getUrl_user_parameter())) { dbUrl += "&" + userDB.getUrl_user_parameter(); } } } else if(userDB.getDBDefine() == DBDefine.POSTGRE_DEFAULT) { dbUrl = getPueURL(userDB.getDBDefine().getDB_URL_INFO(), userDB); if(PublicTadpoleDefine.YES_NO.YES.name().equals(userDB.getExt1())) { dbUrl += "?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory"; //$NON-NLS-1$ if(!"".equals(userDB.getUrl_user_parameter())) { //$NON-NLS-1$ dbUrl += "&" + userDB.getUrl_user_parameter(); //$NON-NLS-1$ } } else { if(!"".equals(userDB.getUrl_user_parameter())) { //$NON-NLS-1$ dbUrl += "?" + userDB.getUrl_user_parameter(); //$NON-NLS-1$ } } } return dbUrl; } private static String getPueURL(String strTempURL, final UserDBDAO userDB) { return String.format( strTempURL, StringUtils.trimToEmpty(userDB.getHost()), StringUtils.trimToEmpty(userDB.getPort()), StringUtils.trimToEmpty(userDB.getDb()) ); } }