You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用连接MariaDB时遇CANON_EQ flag不支持错误求解决

解决MariaDB JDBC在Android中创建Statement时的CANON_EQ错误

问题原因

该错误源于MariaDB JDBC驱动创建Statement时,尝试使用Android环境不支持的Pattern.CANON_EQ正则表达式标志,通常和连接参数配置、驱动版本兼容性或类导入方式有关。

解决方法

1. 替换导入的Connection/Statement类

避免直接使用MariaDB的实现类,改用标准JDBC接口:

// 替换原有导入
import java.sql.Connection;
import java.sql.Statement;
// 移除以下两行:
// import org.mariadb.jdbc.Connection;
// import org.mariadb.jdbc.Statement;

2. 修改连接URL,添加兼容参数

在连接URL中加入usePipelineAuth=false,规避触发CANON_EQ的代码逻辑:

final String url = "jdbc:mariadb://" + db_address + ":" + String.valueOf(db_port) +
        "/" + db_name + "?usePipelineAuth=false";

3. 升级MariaDB JDBC驱动版本

确保使用兼容Android的最新稳定版驱动,在Module级别的build.gradle中更新依赖:

dependencies {
    implementation 'org.mariadb.jdbc:mariadb-java-client:3.3.3' // 可替换为最新稳定版本
}

4. 可选:使用带参数的createStatement重载方法

若上述方法无效,尝试指定结果集属性的重载方法替代无参createStatement():

statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

修改完成后重新运行代码,确认连接成功后可正常创建Statement并执行数据库查询。

内容的提问来源于stack exchange,提问作者YeS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:31:02