⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 url.java

📁 如何连接企业oracle
💻 JAVA
字号:
/*
 * 创建日期 2003-12-30
 */
package com.dingl.jdbc;

import java.util.Properties;
import java.util.StringTokenizer;

/**
 * @author 丁令(令少爷) http://www.DingL.com
 *
 * URL类
 */
public final class Url {
	static final String PREFIX_SEPARATOR = "/";
	static final String PARAMETER_SEPARATOR = "&";

	private String prefix = null;
	private String databaseType = null;
	private String host = null;
	private String database = null;
	private String port = null;
	private Properties parameter = null;

	private String common = null;
	private String real = null;

	/**
	 * 构造方法
	 * jdbc:nes/dbtype=oracle&host=ddd&port=1521&dbname=sid&useTrim=yes&charset=GBK
	 * */
	public Url(String commonUrl, Properties drivers) {
		common = commonUrl;

		StringTokenizer st = new StringTokenizer(common, PREFIX_SEPARATOR);
		setPrefix(st.nextToken());

		String param = st.nextToken();
		st = new StringTokenizer(param, PARAMETER_SEPARATOR);

		String item = null;
		parameter = new Properties();

		while (st.hasMoreTokens()) {
			item = st.nextToken();
			int index = item.indexOf("=");
			if (item.startsWith("host")) {
				setHost(item.substring(index + 1));
			} else if (item.startsWith("dbtype")) {
				setDatabaseType(item.substring(index + 1));
			} else if (item.startsWith("port")) {
				setPort(item.substring(index + 1));
			} else if (item.startsWith("dbname")) {
				setDatabase(item.substring(index + 1));
			} else
				parameter.put(item.substring(0, index).toLowerCase(), item.substring(index + 1));
		}

		real = drivers.getProperty(getDatabaseType() + ".url");
	}

	/**
	 * get real url
	 * */
	public String getRealUrl() {
		String tempUrl = real;
		tempUrl = replaceAll(tempUrl, "host-name", getHost());
		tempUrl = replaceAll(tempUrl, "database-name", getDatabase());
		tempUrl = replaceAll(tempUrl, "port", getPort());
		return tempUrl;
	}

	/**
	 * @return
	 */
	public String getDatabase() {
		return database;
	}

	/**
	 * @return
	 */
	public String getHost() {
		return host;
	}

	/**
	 * @return
	 */
	public Properties getParameter() {
		return parameter;
	}

	/**
	 * @return
	 */
	public String getPort() {
		return port;
	}

	/**
	 * @return
	 */
	public String getPrefix() {
		return prefix;
	}

	/**
	 * @param string
	 */
	public void setDatabase(String string) {
		database = string;
	}

	/**
	 * @param string
	 */
	public void setHost(String string) {
		host = string;
	}

	/**
	 * @param properties
	 */
	public void setParameter(Properties properties) {
		parameter = properties;
	}

	/**
	 * @param string
	 */
	public void setPort(String string) {
		port = string;
	}

	/**
	 * @param string
	 */
	public void setPrefix(String string) {
		prefix = string;
	}

	/**
	 * @return
	 */
	public String getDatabaseType() {
		return databaseType;
	}

	/**
	 * @param string
	 */
	public void setDatabaseType(String string) {
		databaseType = string;
	}

	/**
	 * 将一个字符串包含的所有某个子串全部替换成另一个字符串
	 * @param	replaceStr		待替换的字符串
	 * @param	oldsub			replaceStr中要替换的子串
	 * @param	newsub			替换oldsub子串的新字符串
	 * @return	<code>String</code>	全部替换后的新串
	 * */
	public static String replaceAll(String replaceStr, String oldsub, String newsub) {
		if (replaceStr == null) {
			throw new java.lang.NullPointerException("replace String is null");
		}
		if (replaceStr.length() == 0) {
			return "";
		}
		int oldlen = oldsub.length();
		int i = -1;
		while ((i = replaceStr.indexOf(oldsub)) >= 0) {
			replaceStr = replaceStr.substring(0, i) + newsub + replaceStr.substring(i + oldlen);
		}

		return replaceStr;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -