数据库课设模板/增改删查

展示界面

对于每一个类似于这样的一个窗口

在这里插入图片描述

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());
}

将上述的各个功能的代码直接复制,修改,放到正确的位置

猜你喜欢

转载自blog.csdn.net/Sun_Raiser/article/details/118378309