展示界面
对于每一个类似于这样的一个窗口
b1.addActionListener(new ActionListener() {// b1增加
public void actionPerformed(ActionEvent e) {
//将代码复制到这边,然后修改
}
});
查询语句
有四个需要修改的地方,只要功能相同都可以按照这个模板来修改
- 第一个修改的地方是sql语句,建议每次执行sql都将sql输出在控制台,防止sql拼接出错,从ui中获取正确的输入信息
- 第二个修改的地方是ArrayList的泛型,不同的查询应该使用不同的实体来承接数据
- 第三个修改的地方是实体属性部分,不同的实体有不同的属性,不同的数据类型。
- 第四个修改的地方是将对象呈现在表格中的那部分,将不同的实体展现到界面中
Db dbcon = new Db();
try {
System.out.println("hello");
//修改sql语句
String sql = "select * from Book_Type where book_type_no like '" + SearStr.getText() + "%'"; //1
PreparedStatement presta = dbcon.PreparedStatement(sql);
System.out.println(sql);
// 获得JTable中所修改的行数
ResultSet rs = presta.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int Colnum = rsmd.getColumnCount();
MyTableModel tableModel = new MyTableModel();
for (i = 1; i <= Colnum; i++)
tableModel.addColumn(rsmd.getColumnName(i));
//------------------修改-------------------
ArrayList<BookTypeEnity> v = new ArrayList<BookTypeEnity>(); //2
while (rs.next()) {
//3
BookTypeEnity BookType = new BookTypeEnity();
BookType.setBook_type_no((rs.getString(1)));
BookType.setBook_type_name((rs.getString(2)));
BookType.setBook_key_words((rs.getString(3)));
BookType.setNotes(rs.getString(4));
v.add(BookType);
}
rs.close();
for (i = 0; i < v.size(); i++) {
tableModel.addRow(new Object[] {//4
v.get(i).getBook_type_no(), v.get(i).getBook_type_name(), v.get(i).getBook_key_words(),v.get(i).getNotes()
});
}
//------------------修改-------------------
System.out.println("row" + tableModel.getRowCount());
System.out.println("col" + tableModel.getColumnCount());
System.out.println();
table.setModel(tableModel);
} catch (SQLException sqle) {
System.out.println(sqle.toString());
}
更新语句
1、2处,两个sql 意味着多表修改,注意字符串拼接
Db dbcon = new Db();
try {
//------------------修改-------------------
String sql ="update book_info set lend_out=1 where book_no='"+book_no.getText()+"'";//1
PreparedStatement prestate = dbcon.PreparedStatement(sql);
prestate.executeUpdate();
sql ="update lend_record set return_date='"+year_ret.getText() + "-" + month_ret.getSelectedItem() + "-" + day_ret.getSelectedItem()+"' where book_no='"+book_no.getText()+"'";//2
prestate = dbcon.PreparedStatement(sql);
prestate.executeUpdate();
dispose();
RecordManagerFrame psel = new RecordManagerFrame();
psel.setVisible(true);
//------------------修改-------------------
} catch (SQLException e) {
System.out.println(e.toString());
}
删除语句
-
?是sql的占位符,把这个位置占了
-
然后使用 set类型(index,value)方法来对空位赋值
Db dbcon = new Db();
try {
if (table.getSelectedRows().length > 0) {
System.out.println("");
// 获得JTable中选中行的序列
int[] selRowIndexs = table.getSelectedRows();
//------------------修改-------------------
java.sql.PreparedStatement presta = dbcon.PreparedStatement("delete from Book_Type where book_type_no=?");//1
for (int i = 0; i < selRowIndexs.length; i++) {
presta.setString(1, table.getValueAt(selRowIndexs[i], 0).toString());//2
presta.addBatch();
}
// 删除数据库中相应记录
presta.executeBatch();
// 重新加载数据到JTable
tablemodel = getModel();
table.setModel(tablemodel);
//------------------修改-------------------
}
} catch (SQLException sqle) {
System.out.println(sqle.toString());
}
增加语句
- 修改sql
- 从ui中获取用户输入的值
// ok事件处理:
Db dbcon = new Db();
try {
//------------------修改-------------------
String sql = "insert into book_type values(?,?,?,?)";//1
PreparedStatement prestate = dbcon.PreparedStatement(sql);
prestate.setString(1, type_no.getText());//2
prestate.setString(2, type_name.getText());
prestate.setString(3, key_words.getText());
prestate.setString(4, notes.getText());
prestate.executeUpdate();
JOptionPane.showMessageDialog(null, "插入成功! ");
dispose();//隐藏当前窗口
BookTypeManagerFrame rtmf = new BookTypeManagerFrame();
//------------------修改-------------------
rtmf.setVisible(true);
} catch (SQLException e) {
System.out.println(e.toString());
}
将上述的各个功能的代码直接复制,修改,放到正确的位置