use of org.apache.shardingsphere.api.hint.HintManager in project chao-cloud by chaojunzi.
the class HintShardingColumnProxy method hintShardingCodeProxy.
/**
* 慎用:此方法会给ThreadLocal 存放变量<br>
* 注:请不要嵌套使用
*
* @param <T>
* @param shardingCode
* @param function
* @return
*/
public static <T> T hintShardingCodeProxy(String shardingCode, Function<String, T> function) {
ShardingProperties prop = SpringUtil.getBean(ShardingProperties.class);
if (!prop.isEnable()) {
return function.apply(shardingCode);
}
// 设置shardingCode
if (StrUtil.isNotBlank(shardingCode)) {
HintManager instance = HintManager.getInstance();
instance.setDatabaseShardingValue(shardingCode);
}
try {
return function.apply(shardingCode);
} finally {
HintManager.clear();
}
}
use of org.apache.shardingsphere.api.hint.HintManager in project note by kebukeYi.
the class ShardingJdbcApplicationTests method queryCourseByHint.
@Test
public void queryCourseByHint() {
// 02 配置文件 强制路由策略打开
HintManager hintManager = HintManager.getInstance();
// 直接 定死 分表路由
hintManager.addTableShardingValue("course", 2);
// 直接 定死 分库路由
// hintManager.addDatabaseShardingValue("coursedb",2);
// Logic SQL: SELECT cid,cname,user_id,cstatus FROM course
// Actual SQL: m1 ::: SELECT cid,cname,user_id,cstatus FROM course_2
// Actual SQL: m2 ::: SELECT cid,cname,user_id,cstatus FROM course_2
List<Course> courses = courseMapper.selectList(null);
courses.forEach(course -> System.out.println(course));
hintManager.close();
}
use of org.apache.shardingsphere.api.hint.HintManager in project springboot-templet-start by thedestiny.
the class AppHintShardingAlgorithm method doSharding.
@Override
public Collection<String> doSharding(Collection<String> availableTargetNames, HintShardingValue<Long> shardingValue) {
// Hint分片策略必须要使用 HintManager工具类
HintManager hintManager = HintManager.getInstance();
//
hintManager.addDatabaseShardingValue("t_order", 0);
hintManager.addTableShardingValue("t_order", 1);
return null;
}
use of org.apache.shardingsphere.api.hint.HintManager in project code by lastwhispers.
the class ShardingJDBCTest method queryCourseByHint.
@Test
public void queryCourseByHint() {
HintManager hintManager = HintManager.getInstance();
hintManager.addTableShardingValue("course", 2);
List<Course> courses = courseMapper.selectList(null);
courses.forEach(course -> System.out.println(course));
hintManager.close();
}
Aggregations