java - 我的 java 程序的 SQL 语法错误

标签 java mysql syntax xampp

我的代码:

try{ Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lentele", "root", "");
String select = "SELECT * FROM darbuotojai WHERE 1";

    String ID = infoID.getText();
    String Vardas = infoV.getText();
    String Pavardė = infoP.getText();
    String Pareigos = infoPar.getSelectedItem().toString();
    String Alga = infoAlg.getText();
    String Premija = infoPre.getText();

    String insert = "INSERT INTO `darbuotojai`(`ID`, `Vardas`, `Pavardė`, `Pareigos`, `Alga`, `Premija`) VALUES ('"+ID+"','"+Vardas+"','"+Pavardė+"','"+Pareigos+"','"+Alga+"','"+Premija+"',)";


        stm.executeUpdate(insert);
        JOptionPane.showMessageDialog(null, "Užklausa sėkminga");
        infoID.setText("");
        infoV.setText("");
        infoP.setText("");
        infoPar.setSelectedItem("");
        infoAlg.setText("");
        infoPre.setText("");

        display();
    } catch (Exception e) {JOptionPane.showMessageDialog(null, e.getMessage()); }

我得到这样的错误:

you have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1.
And ones more: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'lentele'.

请用最简单的方式为初学者解释这些问题。 此代码用于添加按钮,这有助于将信息插入到我的表格中。

最佳答案

删除右括号前的逗号:

Premija+"',)";

成为

Premija+"')";

除非您不想受到 SQL 注入(inject)攻击,否则不要手动构建查询:使用 PreparedStatement .

关于java - 我的 java 程序的 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397804/

相关文章:

haskell - 用于显示类型类函数特化的 GHCi 语法

mysql - 相同的列名,但数据来自其他表

Java Collections.sort() 缺少 ConcurrentModificationException

java - 在 main 之外的方法中使用 print 语句是否更有效,或者它是否重要?

java - 从 ArrayList 访问对象的详细信息

php - 像 Swoopo 或 Quibids 这样的网站如何让所有游戏玩家保持计时器

mysql - SQL 查询搜索从同一个表中获取按状态过滤

php - 如何将输入字段的值从一页获取到另一页?

java - For 循环嵌套在 do... while 不起作用

java - Java 是否允许可空类型?