JFinal使用技巧-MariaDB使用示例

MariaDB 和 MySQL 是兼容的,但它们是不同的数据库。然而,由于历史原因(MariaDB 是 MySQL 的一个分支),它们之间具有高度的兼容性。

对于MariaDB,有两种常见的JDBC驱动选择:

使用 MariaDB 官方提供的 JDBC 驱动,其驱动类为 org.mariadb.jdbc.Driver,JDBC URL 格式通常以 jdbc:mariadb:// 开头。

使用 MySQL 的 JDBC 驱动(即 MySQL Connector/J),其驱动类为 com.mysql.jdbc.Driver(旧版本)

或 com.mysql.cj.jdbc.Driver(新版本),JDBC URL 格式为 jdbc:mysql://。


虽然 MariaDB 和 MySQL 协议兼容,但为了获得更好的兼容性和支持 MariaDB 特有的功能,建议使用 MariaDB 官方驱动。

但是,如果你使用 MySQL 驱动来连接 MariaDB,在大多数情况下也是可以工作的,因为 MariaDB 设计为与 MySQL 兼容。

不过,可能存在一些细微的差异,尤其是在新版本中。


因此,建议根据你使用的数据库来选择驱动:

如果使用 MariaDB,优先使用 MariaDB 驱动。

如果使用 MySQL,则使用 MySQL 驱动。

image.png


代码示例:

版本对应关系
MariaDB 10.1+ 建议使用 mariadb-java-client 2.7+
最新版本推荐 3.0+
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>3.3.3</version>
</dependency>
//复制一个经典的 多库之动态管理数据库示例: 
public static void main(String[] args) {
    DruidPlugin druidPlugin = new DruidPlugin(
            "jdbc:mariadb://localhost:3307/information_schema",
            "root", "root").set(1, 1, 10);
    ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
    // 启动管理库
    druidPlugin.start();
    arp.start();

    String name = "test_1";
    // 建库
    Db.update("CREATE DATABASE " + name);

    // 启动业务库
    DruidPlugin druidPluginTest = new DruidPlugin("jdbc:mariadb://localhost:3307/" + name,
            "root", "root").set(1, 1, 10);
    ActiveRecordPlugin arpTest = new ActiveRecordPlugin(name, druidPluginTest);
    druidPluginTest.start();
    arpTest.start();
    // 建表
    DbPro testDb = Db.use(name);
    testDb.update(
            "CREATE TABLE `a` ( `id`  int NOT NULL AUTO_INCREMENT , `xx`  varchar(255) NULL , 
            PRIMARY KEY (`id`) ) ");
    // 写入数据
    testDb.update("INSERT INTO `a` (`xx`) VALUES ('xxxxx')");
    // 查询
    List<Record> list = testDb.find("SELECT * FROM `a` LIMIT 100");
    System.out.println(list.toString());

    druidPluginTest.stop();
    druidPlugin.stop();
}

image.png

image.png

PS:我本机有安装 MySQL 与 MariaDB 双数据库,所以 MariaDB 端口改为了3307

MariaDB的核心优势:

对比维度MariaDB 的优势体现
开源与社区更开放:由非营利的MariaDB基金会管理,承诺保持真正开源,社区驱动,开发更透明。
性能与扩展存储引擎更丰富:默认包含Aria、ColumnStore、MyRocks等,针对不同场景优化。
查询优化更强:优化器更先进,支持并行复制,显著提升主从同步速度。
功能特性功能更丰富:较早支持窗口函数、通用表表达式、WITH语句、INTERSECT/EXCEPT等。
动态列:允许在NoSQL风格的单行中存储键值对。
安全性权限更细化:支持更精细的权限控制,如基于表的列级权限。
默认更安全:安装后默认配置可能更严格。
兼容性与演进高度兼容:作为MySQL的“直接替代品”设计,数据和客户端协议兼容,迁移成本低。
创新更快:版本迭代迅速,能更快引入新特性。


又水一篇~

评论区

JFinal

2025-12-06 00:22

实用,点赞收藏一波

热门分享

扫码入社