/*
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
* applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
* OF ANY KIND, either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*/
package com.github.drinkjava2.jdialects;
import java.util.HashMap;
import java.util.Map;
/**
* Function templates, this file not include some not common functions (<15% percent dialects support)
*
* @author Yong Zhu
* @since 1.0.1
*/
@SuppressWarnings("all")
public class DialectFunctionTemplate {
/**
* Initialize extra function templates
*/
protected static void initExtraFunctionTemplates() {
for (Dialect d : Dialect.dialects) //register quote function for all dialects, qt是一个引用符函数
DialectFunctionTemplate.registerFunction("qt", "1=" + d.ddlFeatures.getOpenQuote() + "$P1" + d.ddlFeatures.getCloseQuote(), d);
registerFunction("regexlike", "2=$P1 regexp $P2", "MySQL", "H2"); //register regexlike function 给个别方言添加正则查询函数
registerFunction("regexlike", "2=regex_like($P1, $P2)", "Oracle");
}
/**
* @param databaseFamily
* @param function
* @param template
*/
public static void registerFunction(String function, String template, String... databaseFamily) {
DialectFunctionTranslator.instance.getFunctionMap().put(function.toUpperCase(), 0);
for (Dialect dialect : Dialect.dialects) {
for (String family : databaseFamily) {
if (dialect.isFamily(family)) {
dialect.functions.put(function, template);
}
}
}
}
public static void registerFunction(String function, String template, Dialect... dialects) {
DialectFunctionTranslator.instance.getFunctionMap().put(function.toUpperCase(), 0);
for (Dialect dialect : Dialect.dialects) {
for (Dialect d : dialects) {
if (dialect == d)
dialect.functions.put(function, template);
}
}
}
protected static void initFunctionTemplates() {
//================SQLiteDialect family===============
Map<String, String> m = Dialect.SQLiteDialect.functions;
m.put("abs", "*");
m.put("avg", "1=avg($P1)");
m.put("bit_length", "*");
m.put("cast", "1=cast($P1)|2=cast($P1 as $P2)");
m.put("coalesce", "*");
m.put("concat", "$Lined_Params");
m.put("count", "*");
m.put("day", "1=extract(day from $P1)");
m.put("extract", "1=extract($P1)|2=extract($P1 $P2)|3=extract($P1 $P2 $P3)");
m.put("hour", "1=extract(hour from $P1)");
m.put("length", "*");
m.put("locate", "1=locate($P1)|2=locate($P1, $P2)|3=locate($P1, $P2, $P3)");
m.put("lower", "*");
m.put("max", "*");
m.put("min", "*");
m.put("minute", "1=extract(minute from $P1)");
m.put("mod", "1=$P1|2=$P1 % $P2");
m.put("month", "1=extract(month from $P1)");
m.put("nullif", "*");
m.put("quote", "*");
m.put("random", "0=random()");
m.put("round", "*");
m.put("second", "1=extract(second from $P1)");
m.put("sqrt", "*");
m.put("str", "1=cast($P1 as char)");
m.put("substr", "*");
m.put("substring", "1=substring($P1)|2=substring($P1, $P2)|3=substring($P1, $P2, $P3)");
m.put("sum", "*");
m.put("trim", "1=trim($P1)|2=trim($P2, $P1)");
m.put("upper", "*");
m.put("year", "1=extract(year from $P1)");
//================AccessDialect family===============
m = Dialect.AccessDialect.functions;
m.put("abs", "*");
m.put("acos", "*");
m.put("ascii", "*");
m.put("asin", "*");
m.put("atan", "*");
m.put("atan2", "*");
m.put("avg", "1=avg($P1)");
m.put("bin", "*");
m.put("bit_length", "*");
m.put("cast", "1=cast($P1)|2=cast($P1 as $P2)");
m.put("ceil", "*");
m.put("ceiling", "*");
m.put("char", "*");
m.put("character_length", "*");
m.put("char_length", "*");
m.put("chr", "char($Params)");
m.put("coalesce", "*");
m.put("concat", "$Lined_Params");
m.put("cos", "*");
m.put("cot", "*");
m.put("count", "*");
m.put("crc32", "*");
m.put("curdate", "0=curdate()");
m.put("curtime", "0=curtime()");
m.put("date", "*");
m.put("datediff", "*");
m.put("day", "*");
m.put("dayname", "*");
m.put("dayofmonth", "*");
m.put("dayofweek", "*");
m.put("dayofyear", "*");
m.put("degrees", "*");
m.put("encrypt", "*");
m.put("exp", "*");
m.put("extract", "*");
m.put("floor", "*");
m.put("from_days", "*");
m.put("hex", "*");
m.put("hour", "*");
m.put("initcap", "*");
m.put("instr", "*");
m.put("isnull", "*");
m.put("last_day", "*");
m.put("lcase", "*");
m.put("left", "*");
m.put("len", "*");
m.put("length", "*");
m.put("ln", "*");
m.put("locate", "*");
m.put("log", "*");
m.put("log10", "*");
m.put("log2", "*");
m.put("lower", "*");
m.put("lpad", "*");
m.put("ltrim", "*");
m.put("max", "*");
m.put("md5", "*");
m.put("microsecond", "*");
m.put("min", "*");
m.put("minute", "*");
m.put("mod", "*");
m.put("month", "*");
m.put("monthname", "*");
m.put("now", "0=now()");
m.put("nullif", "*");
m.put("nvl", "*");
m.put("oct", "*");
m.put("octet_length", "*");
m.put("pi", "0=pi()");
m.put("power", "*");
m.put("quarter", "*");
m.put("radians", "*");
m.put("rand", "0=rand()");
m.put("replace", "*");
m.put("reverse", "*");
m.put("right", "*");
m.put("round", "*");
m.put("rpad", "*");
m.put("rtrim", "*");
m.put("second", "*");
m.put("sign", "*");
m.put("sin", "*");
m.put("soundex", "*");
m.put("space", "*");
m.put("sqrt", "*");
m.put("str", "1=cast($P1 as char)");
m.put("substr", "stuff($Params)");
m.put("substring", "*");
m.put("sum", "*");
m.put("sysdate", "0=sysdate()");
m.put("tan", "*");
m.put("time", "*");
m.put("timediff", "*");
m.put("timestamp", "*");
m.put("to_days", "*");
m.put("translate", "*");
m.put("trim", "*");
m.put("trunc", "*");
m.put("ucase", "*");
m.put("upper", "*");
m.put("user", "0=user");
m.put("week", "*");
m.put("weekofyear", "*");
m.put("year", "*");
//================ExcelDialect family===============
m = Dialect.ExcelDialect.functions;
m.put("abs", "*");
m.put("acos", "*");
m.put("ascii", "*");
m.put("asin", "*");
m.put("atan", "*");
m.put("atan2", "*");
m.put("avg", "1=avg($P1)");
m.put("bin", "*");
m.put("bit_length", "*");
m.put("cast", "1=cast($P1)|2=cast($P1 as $P2)");
m.put("ceil", "*");
m.put("ceiling", "*");
m.put("char", "*");
m.put("character_length", "*");
m.put("char_length", "*");
m.put("chr", "char($Params)");
m.put("coalesce", "*");
m.put("concat", "$Lined_Params");
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
jDialects支持多达80多种数据库方言的DDL创建、实体源码生成、分页、函数变换、类型变换及主要的JPA注解解析功能。它通常与JDBC工具组合使用,也可以作为其它Dao工具(如jSqlBox)的一个组成部分。
资源推荐
资源详情
资源评论
收起资源包目录
jdialects一个通用数据库方言工具 (148个子文件)
maven_eclipse_eclipse.bat 30B
maven_eclipse_eclipse.bat 30B
maven_eclipse_eclipse.bat 30B
maven_test.bat 25B
maven_test.bat 25B
maven_test.bat 25B
maven_eclipse_clean.bat 17B
maven_eclipse_clean.bat 17B
maven_eclipse_clean.bat 17B
maven_clean.bat 9B
maven_clean.bat 9B
maven_clean.bat 9B
command.bat 3B
.gitignore 120B
DialectFunctionTemplate.java 104KB
DDLFeatures.java 94KB
DialectTypeMappingTemplate.java 55KB
ClassUtils.java 47KB
StringUtils.java 41KB
StrUtils.java 32KB
ReservedDBWords.java 30KB
ReflectionUtils.java 29KB
ConcurrentReferenceHashMap.java 29KB
ObjectUtils.java 28KB
Dialect.java 27KB
TableModelUtilsOfEntity.java 24KB
DDLCreateUtils.java 23KB
ColumnModel.java 21KB
TableModel.java 20KB
DialectFunctionTranslator.java 16KB
Assert.java 15KB
TableModelUtilsOfJavaSrc.java 14KB
TableModelUtilsOfDb.java 12KB
CollectionUtils.java 10KB
DDLDropUtils.java 10KB
BasicJavaConverter.java 10KB
TableModelUtils.java 9KB
DialectPaginationTemplate.java 9KB
ClassCacheUtils.java 8KB
ClassScanner.java 8KB
SnowflakeCreator.java 8KB
TypeUtils.java 8KB
GuessDialectUtils.java 7KB
DebugUtils.java 7KB
TestDemo.java 7KB
TableModelUtilsOfExcel.java 6KB
TestDemo.java 5KB
DialectFunctionUtils.java 5KB
TableIdGenerator.java 5KB
Java8DateUtils.java 5KB
TableGenerator.java 5KB
JdbcUtil.java 4KB
FKeyModel.java 4KB
COLUMN.java 4KB
Column.java 4KB
SequenceIdGenerator.java 3KB
LogFactory.java 3KB
IdentityIdGenerator.java 3KB
SimpleSLF4JLog.java 3KB
TestDemo.java 3KB
NamingConversion.java 3KB
ConsoleLog.java 3KB
DialectType.java 3KB
Table.java 3KB
AutoIdGenerator.java 3KB
IndexModel.java 3KB
GeneratedValue.java 2KB
SqlFormatter.java 2KB
SortedUUIDGenerator.java 2KB
SequenceGenerator.java 2KB
Convert.java 2KB
UUIDAnyGenerator.java 2KB
UniqueModel.java 2KB
Enumerated.java 2KB
GenerationType.java 2KB
ArrayUtils.java 2KB
Version.java 2KB
BasicJavaToJdbcConverter.java 2KB
DialectException.java 2KB
UUID25Generator.java 2KB
NameMatchUtil.java 2KB
UUID26Generator.java 2KB
Index.java 2KB
PKey.java 2KB
Temporal.java 2KB
SnowflakeGenerator.java 2KB
IdGenerator.java 2KB
Id.java 2KB
Type.java 2KB
UUIDAny.java 2KB
TimeStampIdGenerator.java 2KB
UUID32Generator.java 2KB
UUIDGenerator.java 2KB
DDLFormatter.java 2KB
FKey3.java 2KB
FKey2.java 2KB
FKey1.java 2KB
FKey.java 2KB
UUID36Generator.java 2KB
UniqueConstraint.java 2KB
共 148 条
- 1
- 2
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6749
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功