Sharding-JDBC v1.4.2 发布, 增强版JDBC驱动
jopen 8年前
<p style="text-align: center;"><strong><img alt="" src="https://simg.open-open.com/show/d365dfc2001f48ad885d07ad19bd4384.png" /></strong></p> <p> </p> <p><code>Sharding-JDBC</code>直接封装<code>JDBC API</code>,可以理解为增强版的<code>JDBC</code>驱动,旧代码迁移成本几乎为零:</p> <ul> <li>可适用于任何基于<code>java</code>的<code>ORM</code>框架,如:<code>JPA</code>, <code>Hibernate</code>, <code>Mybatis</code>, <code>Spring JDBC Template</code>或直接使用<code>JDBC</code>。</li> <li>可基于任何第三方的数据库连接池,如:<code>DBCP</code>, <code>C3P0</code>, <code>BoneCP</code>, <code>Druid</code>等。</li> <li>理论上可支持任意实现<code>JDBC</code>规范的数据库。虽然目前仅支持<code>MySQL</code>,但已有支持<code>Oracle</code>,<code>SQLServer</code>,<code>DB2</code>等数据库的计划。</li> </ul> <p><code>Sharding-JDBC</code>定位为轻量级<code>java</code>框架,使用客户端直连数据库,以<code>jar</code>包形式提供服务,未使用中间层,无需额外部署,无其他依赖,<code>DBA</code>也无需改变原有的运维方式。<code>SQL</code>解析使用<code>Druid</code>解析器,是目前性能最高的<code>SQL</code>解析器。</p> <p><code>Sharding-JDBC</code>功能灵活且全面:</p> <ul> <li>分片策略灵活,可支持<code>=</code>,<code>BETWEEN</code>,<code>IN</code>等多维度分片,也可支持多分片键共用。</li> <li><code>SQL</code>解析功能完善,支持聚合,分组,排序,<code>Limit</code>,<code>OR</code>等查询,并且支持<code>Binding Table</code>以及笛卡尔积的表查询。</li> </ul> <p><code>Sharding-JDBC</code>配置多样:</p> <ul> <li>可支持YAML和Spring命名空间配置</li> <li>灵活多样的<code>inline</code>方式</li> </ul> <p>以下是常见的分库分表产品和<code>Sharding-JDBC</code>的对比:</p> <table> <thead> <tr> <th>功能</th> <th>Cobar</th> <th>Cobar-client</th> <th>TDDL</th> <th>Sharding-JDBC</th> </tr> </thead> <tbody> <tr> <td>分库</td> <td>有</td> <td>有</td> <td>未开源</td> <td>有</td> </tr> <tr> <td>分表</td> <td>无</td> <td>无</td> <td>未开源</td> <td>有</td> </tr> <tr> <td>中间层</td> <td>是</td> <td>否</td> <td>否</td> <td>否</td> </tr> <tr> <td>ORM支持</td> <td>任意</td> <td>仅MyBatis</td> <td>任意</td> <td>任意</td> </tr> <tr> <td>数据库支持</td> <td>仅MySQL</td> <td>任意</td> <td>任意</td> <td>任意</td> </tr> <tr> <td>异构语言</td> <td>可</td> <td>仅Java</td> <td>仅Java</td> <td>仅Java</td> </tr> <tr> <td>外部依赖</td> <td>无</td> <td>无</td> <td>Diamond</td> <td>无</td> </tr> </tbody> </table> <p> </p> <p>整体架构图</p> <p style="text-align: center;"><a href="https://simg.open-open.com/show/e33f64a136c1cf27797f13bd44ee931f.png"><img alt="" src="https://simg.open-open.com/show/e33f64a136c1cf27797f13bd44ee931f.png" /></a></p> <p style="text-align: center;"><a href="https://simg.open-open.com/show/dd8cb29ecc68433f8277d7f667c3b56d.png"><img alt="" src="https://simg.open-open.com/show/dd8cb29ecc68433f8277d7f667c3b56d.png" /></a></p> <h2>更新日志</h2> <h3>功能提升</h3> <ol> <li><a href="/misc/goto?guid=4959006072907910720">ISSUE #219</a> 线程性能优化</li> <li><a href="/misc/goto?guid=4959006073009082765">ISSUE #215</a> 流式排序的聚集结果集 StreamingOrderByReducerResultSet性能优化</li> <li><a href="/misc/goto?guid=4959006073110857277">ISSUE #161</a> 结果集归并的时候可以采用堆排序来提升性能</li> </ol> <h3>缺陷修正</h3> <ol> <li><a href="/misc/goto?guid=4959006073211579820">ISSUE #212</a> 对去缺少数据源规则给出更有意义的提示</li> <li><a href="/misc/goto?guid=4959006073309204401">ISSUE #214</a> where中 table_name.column_name in (?,?)无法解析表达式</li> <li><a href="/misc/goto?guid=4959006073412039766">ISSUE #180</a> 批量执行Update返回值不准确</li> <li><a href="/misc/goto?guid=4959006073510580238">ISSUE #225</a> 自动生成Id最后一位不归零</li> </ol> <h2>下载</h2> <ul> <li><a href="/misc/goto?guid=4959006073603958204" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4959006073708826720" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> </ul> <p>本站原创,转载时保留以下信息:<br /> 本文转自:深度开源(open-open.com)<br /> 原文地址:<a href="http://www.open-open.com/news/view/4003ae29">http://www.open-open.com/news/view/4003ae29</a></p>