介绍
Sharding-JDBC的架构以及源码的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
Sharding-JDBC架构
Sharding-JDBC系统架构分成5个部分:
- <李>
SQL解析
李> <李>SQL路由
李> <李>SQL改写
李> <李>SQL执行
李> <李>结果集归并
李>下面从上面五个部分来分析Sharding-JDBC
功能模块
SQL解析
SQL路由
SQL路由序列图
调用链
ShardingPreparedStatement.execute
执行方法
org.apache.shardingsphere.shardingjdbc.jdbc.core.statement.ShardingPreparedStatement.execute ()
方法源码
@Override ,,,public boolean 执行(),throws SQLException { ,,,,,,,try {//本地缓存清空 ,,,,,,,,,,,clearPrevious ();/* * ,*路由 ,* ,*/,,,,,,,,,,,碎片();//,初始化,preparedStatement ,,,,,,,,,,,initPreparedStatementExecutor ();//,执行sql ,,,,,,,,,,,return preparedStatementExecutor.execute (); ,,,,,,,},{finally ,,,,,,,,,,,clearBatch (); ,,,,,,,} ,,,}
BaseShardingEngine.shard
org.apache.shardingsphere.core.BaseShardingEngine.shard(字符串,List<>之前,public SQLRouteResult 碎片(final String  sql, final List