Files
cool-admin-java-docs/.vitepress/dist/assets/src_guide_db.md.JecGjjcC.js
T
2024-07-15 17:43:49 +08:00

2 lines
8.2 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as t,c as d,o as r,a4 as e}from"./chunks/framework.DkvLLw5I.js";const m=JSON.parse('{"title":"数据库","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/db.md","filePath":"src/guide/db.md","lastUpdated":null}'),a={name:"src/guide/db.md"},s=e('<h1 id="数据库" tabindex="-1">数据库 <a class="header-anchor" href="#数据库" aria-label="Permalink to &quot;数据库&quot;">​</a></h1><p>Cool Admin 集成了比 <a href="https://baomidou.com/" target="_blank" rel="noreferrer">Mybatis-Plus</a> 更加强大的,<a href="https://mybatis-flex.com/" target="_blank" rel="noreferrer">Mybatis-Flex</a>,详细用法请查看 <a href="https://mybatis-flex.com/" target="_blank" rel="noreferrer">Mybatis-Flex 官网文档</a></p><p>主要特点;</p><ul><li><p>更轻量:除了 MyBatis 本身,再无任何第三方依赖,因此会带来更高的自主性、把控性和稳定性。在任何一个系统中,依赖越多,稳定性越差。</p></li><li><p>更灵活:提供了非常灵活的 QueryWrapper,支持关联查询、多表查询、多主键、逻辑删除、乐观锁更新、数据填充、数据脱敏等等。</p></li><li><p>高性能:通过独特的架构,没有任何 MyBatis 拦截器、在 SQL 执行的过程中,没有任何的 SQL Parse,因此会带来指数级的性能增长。</p></li></ul><h2 id="功能对比" tabindex="-1">功能对比 <a class="header-anchor" href="#功能对比" aria-label="Permalink to &quot;功能对比&quot;">​</a></h2><table tabindex="0"><thead><tr><th>功能或特点</th><th>MyBatis-Flex</th><th>MyBatis-Plus</th><th>Fluent-MyBatis</th></tr></thead><tbody><tr><td>对 entity 的基本增删改查</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>分页查询</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>分页查询之总量缓存</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>分页查询无 SQL 解析设计(更轻量,及更高性能)</td><td>✅</td><td>❌</td><td>✅</td></tr><tr><td>多表查询: from 多张表</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>多表查询: left join、inner join 等等</td><td>✅</td><td>❌</td><td>✅</td></tr><tr><td>多表查询: union,union all</td><td>✅</td><td>❌</td><td>✅</td></tr><tr><td>单主键配置</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>多种 id 生成策略</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>支持多主键、复合主键</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>字段的 typeHandler 配置</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>除了 MyBatis,无其他第三方依赖(更轻量)</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>QueryWrapper 是否支持在微服务项目下进行 RPC 传输</td><td>✅</td><td>❌</td><td>未知</td></tr><tr><td>逻辑删除</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>乐观锁</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>SQL 审计</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>数据填充</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>数据脱敏</td><td>✅</td><td>✔️ <strong>(收费)</strong></td><td>❌</td></tr><tr><td>字段权限</td><td>✅</td><td>✔️ <strong>(收费)</strong></td><td>❌</td></tr><tr><td>字段加密</td><td>✅</td><td>✔️ <strong>(收费)</strong></td><td>❌</td></tr><tr><td>字典回写</td><td>✅</td><td>✔️ <strong>(收费)</strong></td><td>❌</td></tr><tr><td>Db + Row</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>Entity 监听</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>多数据源支持</td><td>✅</td><td>借助其他框架或收费</td><td>❌</td></tr><tr><td>多数据源是否支持 Spring 的事务管理,比如 <code>@Transactional</code> 和 <code>TransactionTemplate</code> 等</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>多数据源是否支持 &quot;非 Spring&quot; 项目</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>多租户</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>动态表名</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>动态 Schema</td><td>✅</td><td>❌</td><td>❌</td></tr></tbody></table><div class="warning custom-block"><p class="custom-block-title">注意</p><p>以上内容来自第三方相关产品的官方文档或第三方平台,若有错误,欢迎纠正。</p></div><h2 id="支持数据库" tabindex="-1">支持数据库 <a class="header-anchor" href="#支持数据库" aria-label="Permalink to &quot;支持数据库&quot;">​</a></h2><p>MyBatis-Flex 支持的数据库类型,如下表格所示,我们还可以通过自定义方言的方式,持续添加更多的数据库支持。</p><table tabindex="0"><thead><tr><th>数据库</th><th>描述</th></tr></thead><tbody><tr><td>mysql</td><td>MySQL 数据库</td></tr><tr><td>mariadb</td><td>MariaDB 数据库</td></tr><tr><td>oracle</td><td>Oracle11g 及以下数据库</td></tr><tr><td>oracle12c</td><td>Oracle12c 及以上数据库</td></tr><tr><td>db2</td><td>DB2 数据库</td></tr><tr><td>H2</td><td>H2 数据库</td></tr><tr><td>hsql</td><td>HSQL 数据库</td></tr><tr><td>sqlite</td><td>SQLite 数据库</td></tr><tr><td>postgresql</td><td>PostgreSQL 数据库</td></tr><tr><td>sqlserver2005</td><td>SQLServer2005 数据库</td></tr><tr><td>sqlserver</td><td>SQLServer 数据库</td></tr><tr><td>dm</td><td>达梦数据库</td></tr><tr><td>xugu</td><td>虚谷数据库</td></tr><tr><td>kingbasees</td><td>人大金仓数据库</td></tr><tr><td>phoenix</td><td>Phoenix HBase 数据库</td></tr><tr><td>gauss</td><td>Gauss 数据库</td></tr><tr><td>clickhouse</td><td>ClickHouse 数据库</td></tr><tr><td>gbase</td><td>南大通用(华库)数据库</td></tr><tr><td>gbase-8s</td><td>南大通用数据库 GBase 8s</td></tr><tr><td>oscar</td><td>神通数据库</td></tr><tr><td>sybase</td><td>Sybase ASE 数据库</td></tr><tr><td>OceanBase</td><td>OceanBase 数据库</td></tr><tr><td>Firebird</td><td>Firebird 数据库</td></tr><tr><td>derby</td><td>Derby 数据库</td></tr><tr><td>highgo</td><td>瀚高数据库</td></tr><tr><td>cubrid</td><td>CUBRID 数据库</td></tr><tr><td>goldilocks</td><td>GOLDILOCKS 数据库</td></tr><tr><td>csiidb</td><td>CSIIDB 数据库</td></tr><tr><td>hana</td><td>SAP_HANA 数据库</td></tr><tr><td>impala</td><td>Impala 数据库</td></tr><tr><td>vertica</td><td>Vertica 数据库</td></tr><tr><td>xcloud</td><td>行云数据库</td></tr><tr><td>redshift</td><td>亚马逊 redshift 数据库</td></tr><tr><td>openGauss</td><td>华为 openGauss 数据库</td></tr><tr><td>TDengine</td><td>TDengine 数据库</td></tr><tr><td>informix</td><td>Informix 数据库</td></tr><tr><td>greenplum</td><td>Greenplum 数据库</td></tr><tr><td>uxdb</td><td>优炫数据库</td></tr><tr><td>Doris</td><td>Doris 数据库</td></tr><tr><td>Hive SQL</td><td>Hive 数据库</td></tr><tr><td>lealone</td><td>Lealone 数据库</td></tr><tr><td>sinodb</td><td>星瑞格数据库</td></tr></tbody></table><div class="warning custom-block"><p class="custom-block-title">注意</p><p>虽然 Mybatis-flex 支持很多数据库,但是 Cool Admin 是具体的业务框架,无法做到全部支持,那样工作量太大了。但是它为我们提供了改造的可能,理论上你只需修改一些不兼容的代码就可以正常运行了。</p><p>除了 Mysql,我们正在适配:<code>PostgreSQL</code>、<code>Sqlite</code></p></div><h2 id="自动建表" tabindex="-1">自动建表 <a class="header-anchor" href="#自动建表" aria-label="Permalink to &quot;自动建表&quot;">​</a></h2><p>根据 Java 实体,自动映射成数据库的表结构。</p><p>用过 JPA 的都知道,JPA 有一项重要的能力就是表结构自动维护,这让我们可以可以专注于业务逻辑和实体,而不需要关心数据库的表、列的配置,尤其是开发过程中频繁的新增表及变更表结构,节省了大量手动工作。</p><p>框架集成了<a href="https://autotable.tangzc.com/" target="_blank" rel="noreferrer">Auto Table</a>,可以自动创建表,并且支持表字段的修改。</p><div class="warning custom-block"><p class="custom-block-title">注意</p><p>切勿在生产环境开启自动建表功能,因为这可能会造成数据丢失。</p></div>',16),o=[s];function i(l,n,c,p,h,b){return r(),d("div",null,o)}const g=t(a,[["render",i]]);export{m as __pageData,g as default};