Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
e8d77c54
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e8d77c54
编写于
3月 28, 2016
作者:
G
gaohongtao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
down log level
上级
c9607c96
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
83 deletion
+0
-83
sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/resources/shardingJDBC_config_template.groovy
...on/src/main/resources/shardingJDBC_config_template.groovy
+0
-83
未找到文件。
sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/resources/shardingJDBC_config_template.groovy
已删除
100644 → 0
浏览文件 @
c9607c96
/**
* Copyright 1999-2015 dangdang.com.
* <p>
* 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.
* </p>
*/
import
com.dangdang.ddframe.rdb.sharding.config.common.api.config.BindingTableRuleConfig
import
com.dangdang.ddframe.rdb.sharding.config.common.api.config.ShardingRuleConfig
import
com.dangdang.ddframe.rdb.sharding.config.common.api.config.StrategyConfig
import
com.dangdang.ddframe.rdb.sharding.config.common.api.config.TableRuleConfig
/**
* 名称转换.
*
* @param nameList
* @return
*/
def
convertName
(
def
nameList
)
{
nameList
.
split
(
','
).
collect
({
"\"${it.trim()}\""
}).
join
(
','
)
}
/**
* 策略生成闭包.
*/
def
strategy
(
final
String
strategyName
,
final
StrategyConfig
strategyConfig
)
{
if
(
strategyConfig
)
{
def
shardingColumns
=
convertName
(
strategyConfig
.
shardingColumns
)
if
(
strategyConfig
.
algorithmClassName
)
{
return
"""new com.dangdang.ddframe.rdb.sharding.api.strategy.${
strategyName == "databaseStrategy" ? 'database.DatabaseShardingStrategy' : 'table.TableShardingStrategy'
}(${
shardingColumns.contains(",") ? "[$shardingColumns]" : shardingColumns
}, new $strategyConfig.algorithmClassName())"""
}
else
if
(
strategyConfig
.
algorithmExpression
)
{
return
"$strategyName([$shardingColumns], {\"$strategyConfig.algorithmExpression\"})"
}
else
{
throw
new
NullPointerException
(
"$strategyName configure at least one in 'algorithmClassName','algorithmExpression'"
)
}
}
return
''
}
ShardingRuleConfig
config
=
shardingRuleConfig
def
result
=
new
StringBuilder
()
/*
ShardingRuleConfig对象转换为groovy脚本.
*/
config
.
tables
.
each
{
String
logicTable
,
TableRuleConfig
tableRuleConfig
->
result
<<
"""
table '$logicTable', [${convertName(tableRuleConfig.actualTables)}]${
tableRuleConfig.databaseStrategy ? ", ${strategy('databaseStrategy', tableRuleConfig.databaseStrategy)}" : ''
}${tableRuleConfig.tableStrategy ? ", ${strategy('tableStrategy', tableRuleConfig.tableStrategy)}" : ''}
"""
}
if
(
config
.
bindingTables
&&
config
.
bindingTables
.
size
()
>
0
)
{
config
.
bindingTables
.
each
{
BindingTableRuleConfig
bindingTableRuleConfig
->
result
<<
"bind([${convertName(bindingTableRuleConfig.tableNames)}])\n"
}
}
if
(
config
.
defaultDatabaseStrategy
)
{
result
<<
"defaultStrategy ${strategy('databaseStrategy', config.defaultDatabaseStrategy)}\n"
}
if
(
config
.
defaultTableStrategy
)
{
result
<<
"defaultStrategy ${strategy('tableStrategy', config.defaultTableStrategy)}\n"
}
return
result
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录