Для целей тестирования я создал форму с 2 jTextFields, кнопкой и таблицей. Я пытаюсь добавить данные в базу данных. Но я, похоже, столкнулся с проблемой. Когда я нажимаю кнопку, он возвращает сообщение об ошибке, потому что данные не были добавлены в базу данных. Буду признателен за любую помощь. Итак, вот что я делаю. Я создал класс ConnectionConfiguration для упрощения кода:Добавление данных в базу данных MySQL
public class ConnectionConfiguration {
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connection Success");
} catch(ClassNotFoundException e) {
System.out.println("Connection Failed");
}
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/systemnew?zeroDateTimeBehavior=convertToNull", "root","123456");
System.out.println("Database Connected");
} catch (SQLException se){
System.out.println("No Database" + se);
}
return connection;
}
}
Соединение всегда успешно и база данных всегда соединяется. Сообщение об ошибке говорится, что моя ошибка здесь (в systemnew.UpdateDatabase.add) метод добавить .Здесь от класса UpdateDatabase:
public boolean add(String field1, String field2) {
try {
Connection conn = ConnectionConfiguration.getConnection();
PreparedStatement ps = conn.prepareStatement("INSERT INTO newtable(field1,field2) VALUES('"+field1+"','"+field2+"')");
ps.executeUpdate();
return true;
} catch(Exception ex){
ex.printStackTrace();
}
return false;
}
и вот код для кнопки, которая должна потенциально добавить данные в базу данных:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(new UpdateDatabase().add(jTextField1.getText(),jTextField2.getText())){
JOptionPane.showMessageDialog(null, "Added successfully!");
} else {
JOptionPane.showMessageDialog(null, "Record has not been added!");
}
}
ошибка
Connection Success
Database Connected
java.sql.SQLException: Field 'tblid' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
at systemnew.UpdateDatabase.add(UpdateDatabase.java:38)
опубликовано сообщение об ошибке – sidgate
@sidgate http://pastebin.com/raw/WZwdh5xz Строка "at systemnew.UpdateDatabase.add (UpdateDatabase.java:38)". –