امدم همونطوري كه شما گفته بوديد به فيلد ID مقدار يك دادم . بعد مطلب رو ارسال كردم ديدم كه به جاي ركورد يك مقدار خالي ارسال شده يعني ركورد يك پاك شده و هيچي توش نيست.
بعد امدم يه شماره اي مثل 6 دادم كه همچين ركوردي ثبت شده نداشتم بازم يه مقدار خالي ارسال شده.
package be;
import java.io.*;
import java.sql.*;
import java.awt.Panel;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.*;
public class Main {
public static void main(String [] args) {
JFrame frame = new JFrame("ghar hisab");
JButton b = new JButton("save");
Panel p = new Panel();
JTextField f = new JTextField(20);
JTextField f1 = new JTextField(20);
JLabel l = new JLabel("Enter the first name");
JLabel l1 = new JLabel("Enter the first name");
String s1,s2;
p.add(l);
p.add(f);
p.add(l1);
p.add(f1);
p.add(b);
frame.setSize(400,400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.getContentPane().add(p);
s1=f.getText();
s2=f1.getText();
try {
Class.forName("org.h2.Driver");
Connection con = DriverManager.getConnection("jdbc:h2:~/test","sa", "");
Statement s=con.createStatement();
s.execute("INSERT INTO std_info"+ " (ID,FIRSTNAME,LOSTNAME)"+ " VALUES (6,'"+s1+"','"+s2+"')");
s.close();
con.close();
} catch(Exception e){e.printStackTrace();}
}
}
و هيچ پيغامي هم جز پيغام موفقيت زير نميده:
BUILD SUCCESSFUL (total time: 17 seconds)
من بايد يه كاري كنم كه فيلد آي دي خودش اتوماتيك مقدار بگيره نه اينكه من خودم دستي يه مقدار بهش بدم.