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

使用MySQL却出现MariaDB报错?SQL语法错误及疑问求助

问题解决步骤

1. 修复SQL核心语法错误

报错直接指向form category,这是拼写错误:把SQL关键字FROM写成了FORM。同时你的SQL逻辑也存在问题:

  • 若要查询category全表数据,正确SQL应为:select * from category
  • 若要按条件筛选(比如按某个字段匹配),需写成:select * from category where 字段名= ?,且必须补充pst.setXXX(1, 参数值)来设置占位符参数(你当前只写了?却未传参,会触发新的错误)

2. 关于报错显示MariaDB的说明

MariaDB是MySQL的分支,两者语法高度兼容,多数Java数据库驱动(如mysql-connector-java)会将兼容的MariaDB服务器识别并在报错中显示,这属于正常现象,和你使用MySQL的需求不冲突,无需额外处理。

3. 修复表格数据填充的逻辑错误

你代码中的for(int i= 1; i<=c; i++)循环会重复添加id、catname、status多次,导致每行数据冗余(比如列数c为3时,每行会生成9个元素),和表格模型列数不匹配。直接去掉循环,单次添加字段即可:

修复后的完整代码示例

public void Category_Load()
{
    try {
        // 以查询全表为例,若需条件查询可自行修改SQL并补充参数设置
        pst = con.prepareStatement("select * from category");
        rs = pst.executeQuery();
        
        DefaultTableModel d = (DefaultTableModel)jTable1.getModel();
        d.setRowCount(0);
        
        while(rs.next())
        {
            Vector v2 = new Vector();
            v2.add(rs.getString("id"));
            v2.add(rs.getString("catname"));
            v2.add(rs.getString("status"));
            d.addRow(v2);
        }    
    } catch (SQLException ex) {
        Logger.getLogger(Category.class.getName()).log(Level.SEVERE, null, ex);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:01:06