📄 url.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 + -