我希望程序能够精确地将数据放入Jtable中,而不会弄乱我的SQL数据库.
Jtable struct 仅包含、Name、USERName、EMAIL、Pass、Gender和Status.
我的SQL数据库表 struct 是lastName、firstName、middleName、用户名、密码、邮箱、性别、生日、地址、状态.表中记录的数据不符合顺序,添加到jtable的方式也不符合顺序.
我还结合了当我的数据出现在jtable中时,姓氏和名字也结合在一起.(间隔问题).
[heres whats happening) (https://i.sstatic.net/VC4FAU7t.png)
代码:
DefaultTableModel tabolmodel =
(DefaultTableModel) jTable4.getModel(); // add string array basta yon
if (tabolmodel.getRowCount() == 0) {
JOptionPane.showMessageDialog(this, "Table is Empty.");
} else {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/shsgrading?useSSL=false", "root", "");
for (int i = 0; i < tabolmodel.getRowCount(); i++) {
String NAME = (String) tabolmodel.getValueAt(i, 0);
String USERNAME = (String) tabolmodel.getValueAt(i, 1);
String EMAIL = (String) tabolmodel.getValueAt(i, 2);
String PASS = (String) tabolmodel.getValueAt(i, 3);
String GENDER = (String) tabolmodel.getValueAt(i, 4);
String STATUS = (String) tabolmodel.getValueAt(i, 5);
String lastName = txtLname.getText();
String firstName = txtFname.getText();
if (NAME.contains(", ")) {
String[] names = NAME.split(", ", 2);
lastName = names[0].trim();
firstName = names[1].trim();
} else {
firstName = NAME;
}
String middleName = txtMname.getText();
String address = txt_address.getText();
java.sql.Date sqlStartDate = null;
java.util.Date utilStartDate = date_birthday.getDate();
String status = "Inactive";
int statusMaxSize = 30;
if (status.length() > statusMaxSize) {
status = status.substring(0, statusMaxSize);
}
String query =
"INSERT INTO instructor(lastName, firstName, middleName, username, password, email, gender, birthday, address, status) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement prepstmt = con.prepareStatement(query);
prepstmt.setString(1, lastName);
prepstmt.setString(2, firstName);
prepstmt.setString(3, middleName);
prepstmt.setString(4, USERNAME);
prepstmt.setString(5, PASS);
prepstmt.setString(6, EMAIL);
prepstmt.setString(7, GENDER);
if (sqlStartDate != null) {
prepstmt.setDate(8, sqlStartDate);
} else {
prepstmt.setDate(8, new java.sql.Date(new java.util.Date().getTime()));
}
prepstmt.setString(9, address);
if (STATUS != null && !STATUS.isEmpty()) {
prepstmt.setString(10, STATUS);
} else {
prepstmt.setString(10, status);
}
prepstmt.executeUpdate();
prepstmt.close();
}
JOptionPane.showMessageDialog(this, "Data inserted successfully.");
tabolmodel.setRowCount(0);
con.close();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "An error occurred: " + e.getMessage());
}
}