学生管理系统(JAVA版)—— 按教师查询信息页面

按教师查询信息页面UI界面如下,当查询到信息时,可在下方显示该生信息,查询不到则显示“查无此教师”:
在这里插入图片描述
UI界面设计如下:

package ui;

import java.awt.BorderLayout;

import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import daoImp.ClassesDaoImp;
import entity.Classes;

public class SearchByTea extends JFrame implements ActionListener {
	JLabel title,teacher;
	JTextField tea;
	JTextArea jt;
	JButton dft,cla,rtn;
	JPanel line,line1,line2,gird1,gird2;
	JScrollPane jsp;

	public SearchByTea() {
		// TODO Auto-generated constructor stub
		Container con=getContentPane();
		con.setLayout(new BorderLayout());
		line=new JPanel(new GridLayout(2,1));
		gird1=new JPanel();
		gird2=new JPanel();
		line1=new JPanel();
		line2=new JPanel();
		title=new JLabel("学生管理系统");
		title.setFont(new Font("黑体",Font.PLAIN, 20));
		teacher=new JLabel("教师姓名:");
		//初始化一个5行30列的文本域,用于显示多行数据
		jt=new JTextArea(5,30);
		//将jt放置于滚动面板jsp,可显示超出区域的内容
		jsp=new JScrollPane(jt);
		tea=new JTextField(10);
		dft=new JButton("确定");
		dft.addActionListener(this);
		cla=new JButton("清空");
		cla.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				tea.setText("");
				jt.setText("");
			}
		});
		rtn=new JButton("返回");
		rtn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				setVisible(false);
				new Host().setVisible(true);
			}
		});
		gird1.add(title);
		gird2.add(teacher);
		gird2.add(tea);
		line.add(gird1);
		line.add(gird2);
		line1.add(jsp);
		line2.add(dft);
		line2.add(cla);
		line2.add(rtn);
		con.add(line,BorderLayout.NORTH);
		con.add(line1,BorderLayout.CENTER);
		con.add(line2,BorderLayout.SOUTH);
		setTitle("按教师查询学生信息");
		setSize(400,250);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		ClassesDaoImp cdi=new ClassesDaoImp();
		if(cdi.sreachByTeacher(tea.getText())!=null) {
			//foreach语句遍历返回的列表,显示到文本域里
			for(Classes cs:cdi.sreachByTeacher(tea.getText()))
				jt.append("学号:"+cs.getNum()+" 姓名:"+cs.getName()+" 教师:"+cs.getTeacher()+"\n");
		}else {
			jt.setText("查无此教师");
		}
	}

}

重写ClassesDaoImp类的按教师查询方法,实现查询功能:

package daoImp;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import dao.classesDao;
import db.DBCon;
import entity.Classes;

public class ClassesDaoImp implements classesDao {
	Connection cn;
	PreparedStatement psm=null;
	private ResultSet rs;

	@Override
	public boolean add(Classes classes) throws SQLException {
		// TODO Auto-generated method stub
		//。。。。。。
		return flag;
	}

	@Override
	public boolean delete(String num) {
		// TODO Auto-generated method stub
		//。。。。。。
		return flag;
	}

	@Override
	public boolean update(Classes classes) {
		// TODO Auto-generated method stub
		//。。。。。。
		return flag;
	}

	@Override
	public Classes SearchByNum(String num) {
		// TODO Auto-generated method stub
		//。。。。。。
		return null;
	}

	@Override
	public List<Classes> sreachByTeacher(String teacher) {
		// TODO Auto-generated method stub
		DBCon dbcon=new DBCon();
		cn=dbcon.getConnection();
		//实例化一个Classes类型的列表,用来存放查询到的数据
		List<Classes> listClass=new ArrayList<Classes>();
		String sql="select * from classes where teacher=?";
		try {
			psm=cn.prepareStatement(sql);
			psm.setString(1, teacher);
			rs=psm.executeQuery();
			if(rs.next()) {			//判断是否查询到数据
				rs.absolute(0);		//将rs指针置于结果集首
				while(rs.next()) {	//从第一行开始遍历数据
					Classes cs=new Classes();
					cs.setNum(rs.getString(2));
					cs.setName(rs.getString(3));
					cs.setTeacher(rs.getString(4));
					listClass.add(cs);	//将得到的数据添加至列表
				}
				return listClass;
			}
			psm.close();
			cn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
}

PS:
1.foreach语句是for语句的简化,它无需知道要遍历对象的长度,就可以自动遍历对象中的元素,语法如下:
for(元素遍历x:遍历对象obj){
。。。。。。
}
2.List列表和数组相似,它不同于数组的是不用指定长度,可根据索引随机访问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值