表格连接数据库的删除 修改操作

目录

1.删除

2.修改

3.代码流程

封存 自动刷新操作  


1.删除


    a.获取选中的行
        jta.getSelectedRow();
    b.根据选中的行获取指定的列
        jta.getValueAt(指定的行,指定的列);
    c.根据获取的列的值  调用删除的方法即可。

 

2.修改


    a.获取选中的行
        jta.getSelectedRow();
    b.根据选中的行获取指定的列
        jta.getValueAt(指定的行,指定的列);

    c.将获取的学号和当前主界面this对象作为参数传递到修改界面的构造函数中。

    d.根据传递过来的学号   找到该学号的全部信息   并且设置到窗体中去

    e.  为修改按钮设置点击事件  重新获取所有信息后  调用修改的方法即可。

3.代码流程

封存 自动刷新操作  

/**
	 * 专门编写一个方法来实现数据的绑定及主界面的数据显示
	 * 
	 */
	public void myShowDate(List<Student> listStudents) {
		// 1.实例化StudentDao类对象
		StudentDao sd = new StudentDao();
		// 重新显示数据前将上一次显示的数据全部清空
		// 1.获取表格中数据的所有行
		int rowCount = jta.getRowCount();// 12
		// 2.根据获取的行数 删除行 dtm.removeRow(0)
		for (int i = 0; i < rowCount; i++) {
			dtm.removeRow(0);
		}
		// 3.遍历集合
     根据自己的表头来进行编写  
		for (Student student : listStudents) {
			Vector<Object> vc = new Vector<Object>();
			vc.add(student.getSid());
			vc.add(student.getSname());
			vc.add(student.getSage());
			vc.add(student.getSex());
			vc.add(student.getSaddress());
			dtm.addRow(vc);
		}

	}

StudentDao中方法  删除

	public int deleteStudentBySid(int sid) {
		Connection conn = null;
		PreparedStatement ps = null;
		int n = 0;
		String sql = "";
		try {
			conn = DBHelper.getConn();
			sql = "delete from tb_student where sid = "+sid;
			ps = conn.prepareStatement(sql);
			n = ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
     //关闭数据库连接
			DBHelper.myClose(conn, ps, null);
		}
		return n;
	}
	

拿到表头中id的方法  根据ID删除学生

按钮事件

// jbc删除
		/**
		 * 流程: 1.设置删除按钮的动作监听事件 2.在监听器中获取选中的行,如未选中则要提示说明 3.根据选中的行获取指定的列 4.调用删除的DAO方法即可
		 * 5.判断是否删除成功 6.调用自动刷新的方法
		 */
		jbc.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取选中的行
				int row = jta.getSelectedRow();
				if (row != -1) {
					// 是否确定删除
					int isDel = JOptionPane.showConfirmDialog(null, "您确定要删除吗?");
					if (isDel == 0) {
						// 根据选中的行获取指定的列
						String id = jta.getValueAt(row, 0).toString();
						int sid = Integer.valueOf(id);
						// 实例化StudendDao
						StudentDao sd = new StudentDao();
                        //调用Stuudentdao中的方法 根据id删除 需要
						int n = sd.deleteStudentBySid(sid);
						if (n > 0) {
							JOptionPane.showMessageDialog(null, "删除成功");
							// 立刻调用自动刷新的方法 刷新数据
							myShowDate(sd.queryStudentAll());
						} else {
							JOptionPane.showMessageDialog(null, "删除失败");
						}
					}
				} else {
					JOptionPane.showMessageDialog(null, "请您选中行再次进行删除");
				}
			}
		});

修改Dao方法

/**
	 * 查找单个
	 * @param sid
	 * @return
	 */
	public Student getStudentBySid(int sid) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "";
		Student student = null;
		try {
			//1.获取连接
			conn = DBHelper.getConn();
			//2.sql
			sql = "select * from tb_student where sid = "+sid;
			//3.传入方法
			ps = conn.prepareStatement(sql);
			//4.返回结果集
			rs = ps.executeQuery();
			//5.遍历结果集
			while(rs.next()) {
				student = new Student(rs.getInt("sid"), rs.getString("sname"), rs.getInt("sage"), rs.getString("ssex"), rs.getString("shobby"), rs.getString("saddress"), rs.getString("smenu"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(conn, ps, rs);
		}
		return student;
	}
	/**
	 * 修改学生
	 * @param sid
	 * @param student
	 * @return
	 */
	public int editStudentBySid(int sid,Student student) {
		Connection conn = null;
		PreparedStatement ps = null;
		int n = 0;
		String sql = "";
		try {
			conn = DBHelper.getConn();
			sql = "update tb_student set sname = ? , sage = ? , ssex = ? , shobby = ? ,saddress = ? ,smenu = ? where sid = "+sid;
			ps = conn.prepareStatement(sql);
			ps.setString(1, student.getSname());
			ps.setInt(2, student.getSage());
			ps.setString(3, student.getSex());
			ps.setString(4, student.getShobby());
			ps.setString(5, student.getSaddress());
			ps.setString(6, student.getSmenu());
			n = ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			DBHelper.myClose(conn, ps, null);
		}
		return n;
	}

根据ID修改学生信息 !!

编写按钮事件 


		/**
		 * 修改 jbd 流程: 1.设置修改按钮的动作监听事件 2.在监听器中获取选中的行,如未选中则要提示说明 3.根据选中的行获取指定的列
		 * 4.new出修改界面将当前获取的id以及本类的this对象作为构造函数传递到修改界面
		 * 5.在修改界面拿到ID后进行查找单条信息,赋值到修改窗口中的每一个组件中 6.如果对于某些值要重新修改,清除后再修改 7.设置确认修改事件即可
		 */
		jbd.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取选中的行
				int row = jta.getSelectedRow();
				if (row != -1) {
					int isEdit = JOptionPane.showConfirmDialog(null, "您确定要进行修改操作吗?");
					if (isEdit == 0) {
						// 根据选中的行获取指定的列
						String id = jta.getValueAt(row, 0).toString();
						int sid = Integer.valueOf(id);
						// new出新窗口(修改窗口) 需要2个参数 sid this
                         //把获取到的sid 与本类传递过去 因为需要修改后实现自动刷新操作
						new UpdateStudentUI(sid, MainPageUI.this);
					}
				} else {
					JOptionPane.showMessageDialog(null, "请选中行再进行修改操作");
				}
			}
		});

修改页面 !!

根据方法显示原有信息  

/**
	 * 专门编写一个方法来实现将传递过来的sid进行查找
	 */
	public void findStudentBySid(int sid) {
		// 根据参数sid获取该条信息的所有属性
		Student student = new StudentDao().getStudentBySid(sid);
		// 将获取的student实体对象分别设置到指定的组件中即可显示信息
		// 学号
		jtfa_sid.setText(String.valueOf(student.getSid()));
		// 姓名
		jtfa.setText(student.getSname());
		// 年龄
		jtfb.setText(String.valueOf(student.getSage()));
		// 性别
		String ssex = student.getSex();
		System.out.println(ssex);
		if ("男".equals(ssex)) {
			jrba.setSelected(true);
		} else if ("女".equals(ssex)) {
			jrbb.setSelected(true);
		}
		// 爱好
		String shobby = student.getShobby();
		// 判断撩汉子是否在shobby字符串中出现过
		if (shobby.contains("撩汉子")) {
			jcba.setSelected(true);
		}
		if (shobby.contains("撩妹子")) {
			jcbb.setSelected(true);
		}
		if (shobby.contains("撩康康")) {
			jcbc.setSelected(true);
		}
		if (shobby.contains("锤康康")) {
			jcbd.setSelected(true);
		}
		// 地址
		jcbaa.setSelectedItem(student.getSaddress());
		// 备注
		jta.setText(student.getSmenu());
	}

修改界面所有代码

package com.zking.stumanager.ui;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.zking.stumanager.dao.StudentDao;
import com.zking.stumanager.entity.Student;

/**
 * 修改界面
 * 
 * @author Zkingzz
 *
 */
public class UpdateStudentUI extends JFrame {
	/**
	 * 1
	 */
	// 上
	private JPanel jpa = new JPanel();
	private JLabel jla = new JLabel("修改学生");
	// 中
	private GridBagLayout gbl = new GridBagLayout();
	private GridBagConstraints gbc = new GridBagConstraints();
	private JPanel jpb = new JPanel();
	private JLabel jla_sid = new JLabel("学号");
	private JTextField jtfa_sid = new JTextField(15);
	private JLabel jlb = new JLabel("姓名");
	private JTextField jtfa = new JTextField(15);
	private JLabel jlc = new JLabel("年龄");
	private JTextField jtfb = new JTextField(15);
	private JLabel jld = new JLabel("性别");
	private JRadioButton jrba = new JRadioButton("男");
	private JRadioButton jrbb = new JRadioButton("女");
	private ButtonGroup bg = new ButtonGroup();
	private JLabel jle = new JLabel("爱好");
	private JCheckBox jcba = new JCheckBox("撩汉子");
	private JCheckBox jcbb = new JCheckBox("撩妹子");
	private JCheckBox jcbc = new JCheckBox("撩康康");
	private JCheckBox jcbd = new JCheckBox("锤康康");
	private JLabel jlf = new JLabel("地址");
	private JComboBox jcbaa = new JComboBox();
	private JLabel jlg = new JLabel("备注");
	private JTextArea jta = new JTextArea(8, 18);
	private JScrollPane jsp = new JScrollPane(jta);
	// 下
	private JPanel jpc = new JPanel();
	private JButton jba = new JButton("确认修改");
	private JButton jbb = new JButton("清空");
	private JButton jbc = new JButton("取消");

	/**
	 * 2.将指定的基础组件添加到指定的中间面板中
	 */
	public void addControl() {
		// 上
		jla.setFont(new Font("宋体", Font.BOLD, 30));
		jla.setForeground(Color.blue);
		jpa.add(jla);
		// 中
		jpb.setLayout(gbl);

		// 利用约束对象进行开始布局
		// 学号
		gbc.insets = new Insets(10, 10, 0, 0);
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbl.setConstraints(jla_sid, gbc);
		jpb.add(jla_sid);

		jtfa_sid.setEditable(false);// 禁用
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtfa_sid, gbc);
		jpb.add(jtfa_sid);

		// 姓名
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jlb, gbc);
		jpb.add(jlb);

		gbc.insets = new Insets(10, 10, 0, 0);

		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jtfa, gbc);
		jpb.add(jtfa);
		// 年龄
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jlc, gbc);
		jpb.add(jlc);

		gbc.insets = new Insets(10, 10, 0, 0);

		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jtfb, gbc);
		jpb.add(jtfb);
		// 性别
		// 分组
		bg.add(jrba);
		bg.add(jrbb);
		gbc.gridx = 0;
		gbc.gridy = 3;
		gbl.setConstraints(jld, gbc);
		jpb.add(jld);

		gbc.insets = new Insets(10, -80, 0, 0);

		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jrba, gbc);
		jpb.add(jrba);
		gbc.gridx = 2;
		gbc.gridy = 3;
		gbl.setConstraints(jrbb, gbc);
		jpb.add(jrbb);

		gbc.insets = new Insets(10, 10, 0, 0);

		// 爱好
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jle, gbc);
		jpb.add(jle);

		gbc.insets = new Insets(10, -65, 0, 0);

		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jcba, gbc);
		jpb.add(jcba);
		gbc.gridx = 2;
		gbc.gridy = 4;
		gbl.setConstraints(jcbb, gbc);
		jpb.add(jcbb);
		gbc.gridx = 1;
		gbc.gridy = 5;
		gbl.setConstraints(jcbc, gbc);
		jpb.add(jcbc);
		gbc.gridx = 2;
		gbc.gridy = 5;
		gbl.setConstraints(jcbd, gbc);
		jpb.add(jcbd);
		// 地址
		gbc.insets = new Insets(10, 10, 0, 0);
		jcbaa.addItem("湖南省");
		jcbaa.addItem("湖北省");
		jcbaa.addItem("广东省");
		jcbaa.addItem("广西省");
		jcbaa.addItem("娄底省");
		gbc.gridx = 0;
		gbc.gridy = 6;
		gbl.setConstraints(jlf, gbc);
		jpb.add(jlf);
		gbc.gridx = 1;
		gbc.gridy = 6;
		gbl.setConstraints(jcbaa, gbc);
		jpb.add(jcbaa);

		// 备注
		gbc.gridx = 0;
		gbc.gridy = 7;
		gbl.setConstraints(jlg, gbc);
		jpb.add(jlg);
		gbc.gridx = 1;
		gbc.gridy = 7;
		gbl.setConstraints(jsp, gbc);
		jpb.add(jsp);

		// 下
		jpc.add(jba);
		jpc.add(jbb);
		jpc.add(jbc);
	}

	/**
	 * 专门编写一个方法来实现将传递过来的sid进行查找
	 */
	public void findStudentBySid(int sid) {
		// 根据参数sid获取该条信息的所有属性
		Student student = new StudentDao().getStudentBySid(sid);
		// 将获取的student实体对象分别设置到指定的组件中即可显示信息
		// 学号
		jtfa_sid.setText(String.valueOf(student.getSid()));
		// 姓名
		jtfa.setText(student.getSname());
		// 年龄
		jtfb.setText(String.valueOf(student.getSage()));
		// 性别
		String ssex = student.getSex();
		System.out.println(ssex);
		if ("男".equals(ssex)) {
			jrba.setSelected(true);
		} else if ("女".equals(ssex)) {
			jrbb.setSelected(true);
		}
		// 爱好
		String shobby = student.getShobby();
		// 判断撩汉子是否在shobby字符串中出现过
		if (shobby.contains("撩汉子")) {
			jcba.setSelected(true);
		}
		if (shobby.contains("撩妹子")) {
			jcbb.setSelected(true);
		}
		if (shobby.contains("撩康康")) {
			jcbc.setSelected(true);
		}
		if (shobby.contains("锤康康")) {
			jcbd.setSelected(true);
		}
		// 地址
		jcbaa.setSelectedItem(student.getSaddress());
		// 备注
		jta.setText(student.getSmenu());
	}

	// 声明一个空mp对象
	private MainPageUI mp = null;

	public UpdateStudentUI(int sid, MainPageUI mp) {
		System.out.println("sid是主界面传递过来,值为: " + sid);
		this.mp = mp;
		this.setTitle("新增");
		this.setSize(450, 550);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		addControl();

		findStudentBySid(sid);

		/**
		 * 3
		 */
		// 上
		this.getContentPane().add(jpa, "North");
		// 中
		this.getContentPane().add(jpb, "Center");
		// 下
		this.getContentPane().add(jpc, "South");

		/**
		 * 确认修改的点击事件
		 */
		jba.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 姓名
				String sname = jtfa.getText();
				// 年龄
				int sage = Integer.valueOf(jtfb.getText());
				// 性别
				String sex = "";// 定义一个变量来存储最终选中的性别
				if (jrba.isSelected()) {// 如果jrba男被选中
					sex = "男";
				} else if (jrbb.isSelected()) {// 如果jrbb女被选中
					sex = "女";
				}
				// System.out.println(sex);
				// 爱好
				String shobby = "";// 定义一个变量来存储最终选中的爱好
				if (jcba.isSelected()) {
					shobby += "撩汉子-";
				}
				if (jcbb.isSelected()) {
					shobby += "撩妹子-";
				}
				if (jcbc.isSelected()) {
					shobby += "撩康康-";
				}
				if (jcbd.isSelected()) {
					shobby += "锤康康-";
				}
				// System.out.println(shobby);
				shobby = shobby.substring(0, shobby.lastIndexOf('-'));
				// System.out.println(shobby);
				// 地址
				String saddress = jcbaa.getSelectedItem().toString();
				// 备注
				String smenu = jta.getText();

				// 封装
				Student student = new Student(sname, sage, sex, shobby, saddress, smenu);

				// 实例化DAO
				StudentDao sd = new StudentDao();
				int n = sd.editStudentBySid(sid, student);
				if (n > 0) {
					JOptionPane.showMessageDialog(null, "修改成功");
					// 关闭新增窗口
					UpdateStudentUI.this.dispose();// 新增成功后关闭当前新增界面
					// 自动刷新
					mp.myShowDate(sd.queryStudentAll());
				} else {
					JOptionPane.showMessageDialog(null, "修改失败");
				}
			}
		});

		jbb.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				findStudentBySid(sid);
			}
		});

		this.setVisible(true);
	}

}

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值