java - 插入查询不起作用

标签 java mysql database jdbc

我遇到一个问题,我认为 INSERT 语句是错误的,因为我不断收到“SQL 错误”。每次我执行 UPDATE 语句时,它都工作得很好。我似乎找不到查询有什么问题。

我的数据库表:emenu_user有变量id、用户名、密码、电子邮件、联系人和食物。其中所有内容均为 VARCHAR(目前)。

 public void Connection(){

        try{
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/emenu?zeroDateTimeBehavior=convertToNull","root","");
        if(connection!=null){
        System.out.println("Database connected");
        }else {System.out.println("Database NOT connected");}


        String name=username_field.getText();
        String pass=password_field.getText();
        String email=email_field.getText();
        String contact=contact_field.getText();

        String query="INSERT INTO emenu_user (username,password,email,contact) VALUES (?,?,?,?)";
        PreparedStatement statement = connection.prepareStatement(query);
        statement.setString(1,name);
        statement.setString(2,pass);
        statement.setString(3,email);
        statement.setString(4,contact);


        int set=statement.executeUpdate();

        if(set>0)
        {
            JOptionPane.showMessageDialog(null,"Data Saved");
            homepageMenu homepageMenu= new homepageMenu();
            homepageMenu.setVisible(true);
            dispose();
        }
        else
        {
            JOptionPane.showMessageDialog(null,"ERROR");
        }


    } catch(SQLException e){
            JOptionPane.showMessageDialog(null,"SQL FAILED");
    }

}

最佳答案

您需要将字段 food 设置为 null

ALTER TABLE `emenu_user` ALTER `food` SET DEFAULT NULL

或者在插入时提供一些值

String query="INSERT INTO emenu_user (username,password,email,contact, food) VALUES (?,?,?,?,?)";
    PreparedStatement statement = connection.prepareStatement(query);
    statement.setString(1,name);
    statement.setString(2,pass);
    statement.setString(3,email);
    statement.setString(4,contact);
    statement.setString(5,[SOME_VALUE]);

关于java - 插入查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50170426/

相关文章:

java - 检测对象中的循环引用

java - 如何使用 ProcessBuilder 在 Java 中启动带空格的快捷方式

PHP-MYSQLI : dynamically select attributes from db and display in dropdown issues

r - 为变量中的每个唯一元素创建一个转换矩阵

java - 我可以在运行时创建的表上使用 JPA/EJB3 吗?

java - 为什么我会获得与 JPA 共享的 Id?

mysql - 从子内连接选择引用父字段

mysql复制停止

java - 从数据库设计决策中导出 XML、JSON

c# - 如何根据最高 IDENTITY 条目提取 SQL 表条目并更新两列