我遇到一个问题,我认为 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/