All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.easycodebox.jdbc.dialect.Dialect Maven / Gradle / Ivy

package com.easycodebox.jdbc.dialect;

import com.easycodebox.common.error.BaseException;
import com.easycodebox.common.validate.Assert;
import com.easycodebox.jdbc.JoinType;

/**
 * @author WangXiaoJin
 *
 */
public abstract class Dialect {
	
	public char openQuote() {
		return '"';
	}
	
	public char closeQuote() {
		return '"';
	}

	/**
	 * 为name包裹引号,更具数据库的类型包括相对应的引号
	 * Oracle  name ==》 "name"
	 * MySql   name ==》 `name`
	 * @param name
	 * @return
	 */
	public String wrapQuote(String name) {
		Assert.notBlank(name);
		return openQuote() + name.trim() + closeQuote();
	}
	
	/**
	 * joinType = NONE 时,return null
	 * @param joinType
	 * @return
	 */
	public String joinSql(JoinType joinType) {
		switch (joinType) {
			case INNER_JOIN:
				return "INNER JOIN";
			case LEFT_OUTER_JOIN:
				return "LEFT OUTER JOIN";
			case RIGHT_OUTER_JOIN:
				return "RIGHT OUTER JOIN";
			case FULL_JOIN:
				return "FULL JOIN";
			case NONE:
				return null;
			default:
				throw new BaseException("unknown JoinType " + joinType);
		}
	}
	
	/**
	 * 把param参数的特殊符号转义
	 * @param param
	 * @return
	 */
	public abstract String escapeString(String val);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy