📄 updatedialog.java
字号:
void deleteRadio_actionPerformed(ActionEvent e) {
this.action = this.DELETE;
params[0].setText("");
contentPanel.removeAll();
gridLayout2.setRows(1);
JLabel label = new JLabel("请输入要删除的记录的" + (String) namesVector.elementAt(0) +
" :");
contentPanel.add(label);
contentPanel.add(params[0]);
validate();
pack();
repaint();
}
void okButton_actionPerformed(ActionEvent e) {
// for(int i = 0; i<params.length; i++){
// System.out.println(params[i].getText().length());
// }
String sql = "";
switch (action) {
case 0: //insert data
sql = "insert into " + Type.SILOTABLE + " values(";
// for(int i = 0; i<namesVector.size(); i++){
// sql += params[i].getText()+",";
// }
for (int i = 0; i < namesVector.size() - 1; i++) {
if (i == 1) {
sql += "'" + params[i].getText() + "',";
}
else if (i == 0) {
sql += getNextId() + ",";
}
else {
sql += params[i].getText() + ",";
}
}
sql = insertDate(sql);
// Calendar ca = Calendar.getInstance();
// Date date = new Date(ca.getTime().getTime());
// sql += "'"+date+ "',";
// int len = sql.length();
// sql = sql.substring(0, len - 1);
// sql += ")";
// System.out.println(sql);
break;
case 1: //update data
sql = "update " + Type.SILOTABLE + " set ";
for (int i = 0; i < params.length; i++) {
if (i == 0) {
if (params[i].getText() == null ||
params[i].getText().length() <= 0)
JOptionPane.showMessageDialog(this,
"请输入要修改的项目的名称,其中序号必须输入,其它的可以为空!");
}
else
if (params[i].getText() != null && params[i].getText().length() > 0) {
if (i == 1) {
sql += " " + namesVector.elementAt(i) + "='" + params[i].getText() +
"',";
}
else {
sql += " " + namesVector.elementAt(i) + "=" + params[i].getText() +
",";
}
}
}
int len1 = sql.length();
sql = sql.substring(0, len1 - 1);
sql += " where 序号 like '" + params[0].getText() + "'";
// if(sql == "update "+Type.SILOTABLE+"set "){
// JOptionPane.showMessageDialog(this,"请输入要修改的项目的名称,其中序号必须输入,其它的可以为空!");
// }
System.out.println(sql);
break;
case 2: //delete data
if (params[0].getText() != null && params[0].getText().length() > 0)
sql = "delete from " + Type.SILOTABLE + " where 序号 like '" +
params[0].getText() + "'";
else {
JOptionPane.showMessageDialog(this, "请输入要修改的项目的序号!");
return;
}
System.out.println(sql);
int option = JOptionPane.showConfirmDialog(this, "你确定要删除所选的记录吗",
"确认对话框", JOptionPane.YES_NO_OPTION);
// JOptionPane.showConfirmDialog()
if (option == JOptionPane.NO_OPTION) {
sql = null;
}
}
// 添加修改数据库的代码,进行实际的数据库修改
try {
if (!this.insertRadio.isSelected() && !this.updateRadio.isSelected() &&
!this.deleteRadio.isSelected()) {
JOptionPane.showMessageDialog(this, "请选择要进行的操作,否则无法更新数据库!!!");
return;
}
if (this.action == this.DELETE || this.action == this.UPDATE) {
if (checkExist(params[0].getText())) {
Statement sta = con.createStatement();
int changedRows = sta.executeUpdate(sql);
updateView();
JOptionPane.showMessageDialog(this, "数据库已经成功更新!");
}
else {
JOptionPane.showMessageDialog(this, "您要修改的记录不存在,请确认正误再次输入!!!");
}
}
else {
Statement sta = con.createStatement();
int changedRows = sta.executeUpdate(sql);
updateView();
JOptionPane.showMessageDialog(this, "数据库已经成功更新!");
}
}
catch (SQLException ex) {
System.err.println(ex.toString());
JOptionPane.showMessageDialog(this, "数据库更新失败,请检查输入是否正确!");
}
}
/**
* 向siloTable中自动添加插入时间,该时间从系统获得
* @param sql String
* @return String
*/
private String insertDate(String sql) {
Calendar ca = Calendar.getInstance();
Date date = new Date(ca.getTime().getTime());
sql += "'" + date + "',";
int len = sql.length();
sql = sql.substring(0, len - 1);
sql += ")";
System.out.println(sql);
return sql;
}
/**
* 刷新数据表格的显示,使显示保持最新
*/
private void updateView() {
try {
Statement sta = con.createStatement();
ResultSet set = sta.executeQuery("select * from " + Type.SILOTABLE);
ResultSetMetaData meta = set.getMetaData();
int colCount = meta.getColumnCount();
// parentPanel.tablePanel.tbModel = new DefaultTableModel();
int rowCount = parentPanel.tablePanel.tbModel.getRowCount();
// System.out.print(rowCount);
for (int i = 0; i < rowCount; i++) {
parentPanel.tablePanel.tbModel.removeRow(0);
}
Vector colNames = new Vector();
Vector row;
for (int i = 1; i <= colCount; i++) {
colNames.add(meta.getColumnLabel(i));
}
parentPanel.tablePanel.tbModel.setColumnIdentifiers(colNames);
while (set.next()) {
row = new Vector();
for (int i = 1; i <= colCount; i++) {
String temp = set.getString(i);
if (temp.indexOf(" ") >= 0) {
temp = temp.substring(0, temp.indexOf(" "));
}
// if(i == 3 || i == 4){//单价和数量取两位小数
if (i == 4) {
temp = temp.substring(0, temp.length() - 2);
}
row.add(temp);
// System.out.print(set.getString(i)+" ");
}
// System.out.println();
parentPanel.tablePanel.tbModel.addRow(row);
}
}
catch (Exception ex) {
}
}
/**
*从数据库中得到SiloTable表的下一个序号值
*/
private long getNextId() {
String nextId = "";
long longId = 0;
try {
Statement sta = con.createStatement();
ResultSet set = sta.executeQuery("select nextid from " + Type.SILOIDTABLE);
set.next();
nextId = set.getString(1);
set.close();
sta.close();
longId = Long.valueOf(nextId).longValue();
// longId++;
if (longId == Long.MAX_VALUE) {
longId = 10000;
}
sta = con.createStatement();
set = sta.executeQuery("select * from " + Type.SILOTABLE + " where 序号=" +
longId);
while (set.next()) {
longId++;
set.close();
sta.close();
sta = con.createStatement();
set = sta.executeQuery("select * from " + Type.SILOTABLE + " where 序号=" +
longId);
}
if (set != null) {
set.close();
set = null;
}
if (sta != null) {
sta.close();
sta = null;
}
// longId++;
sta = con.createStatement();
int col = sta.executeUpdate("update " + Type.SILOIDTABLE + " set nextId=" +
longId); //10001);
System.out.print(col);
}
catch (SQLException e) {
System.err.println(e.toString());
}
// return nextId;
return longId;
}
private boolean checkExist(String id) {
Statement sta = null;
ResultSet set = null;
try {
sta = con.createStatement();
set = sta.executeQuery("select * from " + Type.SILOTABLE +
" where 序号=" + id);
boolean result = set.next();
set.close();
sta.close();
return result;
}
catch (SQLException ex) {
System.err.println(ex.toString());
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -