Java课程设计---浏览学生(实现根据姓名查询)
1、修改窗口

  
2、在StudentDao中增加根据姓名查找的方法
	public List<Student> getStudent(String name)throws SQLException{
		DbUtil dbUtil = new DbUtil();
		String sql="select * from tb_student where name LIKE '"+name+"%'";
		System.out.println(sql);
		List<Student> list = new ArrayList<Student>();
		ResultSet rs=dbUtil.executeQuery(sql);
		while(rs.next()){
			Student student = new Student();
			student.setId(rs.getInt("id"));
			student.setName(rs.getString("name"));
			student.setSex(rs.getString("sex"));
			student.setSno(rs.getString("sno"));
			student.setClassName(rs.getString("classname"));
			list.add(student);
		}
		return list;
	}
3、在StudentService中增加服务
/**
* 根据姓名模糊查找
* @param name
* @return
* @throws SQLException
*/
public List<Student> getStudent(String name) throws SQLException {
StudentDao studentDao = new StudentDao();
return studentDao.getStudent(name);
}
4、将窗口和服务绑定
(1)将表格数据装载分离出来
fillTable方法
public void fillTable(List<Student> list) {
		// 将默认的加载数据去掉,重新定义个表头
		String[] head = new String[] { "序号", "学号", "姓名", "性别", "班级" };
		// 创建一个二维数组,5表示列数
		Object[][] data = new Object[list.size()][5];
		// 遍历
		for (int i = 0; i < list.size(); i++) {
			data[i][0] = list.get(i).getId();
			data[i][1] = list.get(i).getSno();
			data[i][2] = list.get(i).getName();
			data[i][3] = list.get(i).getSex();
			data[i][4] = list.get(i).getClassName();
		}
		// 将数据和表头封装
		DefaultTableModel datamoModel = new DefaultTableModel(data, head);
		// 将封装好的数据加载
		table.setModel(datamoModel);
	}
修改后的完整代码
package com.student.view; import java.awt.EventQueue;
import java.sql.SQLException;
import java.util.List; import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel; import com.student.model.Student;
import com.student.service.StudentService;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton; /*
* 项目名称:
*
* 文件名称为:ShowStudent.java
* 文件创建人:daxiang
*
* @author daxiang
* @version
* @time 2018年6月22日 上午8:03:24
* @copyright daxiang
*/
public class ShowStudent extends JFrame { private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTable table;
private JTextField textField; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ShowTable frame = new ShowTable();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the frame.
*/
public ShowStudent() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 724, 481);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
// 设置无布局
contentPane.setLayout(null);
// 创建滚动面板
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(27, 74, 603, 221);
contentPane.add(scrollPane);
// 创建表格
table = new JTable();
// 将表格加载到滚动面板
scrollPane.setViewportView(table);
try {
// 创建服务
StudentService service = new StudentService();
// 查询出所有学生
List<Student> list = service.getStudent();
// 装载数据
fillTable(list); JLabel label = new JLabel("请输入学生姓名");
label.setBounds(53, 43, 123, 18);
contentPane.add(label);
textField = new JTextField();
textField.setBounds(190, 40, 169, 24);
contentPane.add(textField);
textField.setColumns(10);
JButton button = new JButton("查 找");
button.setBounds(394, 39, 113, 27);
contentPane.add(button);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setVisible(true);
} /**
* 表格装载数据
*
* @param list
*/
public void fillTable(List<Student> list) {
// 将默认的加载数据去掉,重新定义个表头
String[] head = new String[] { "序号", "学号", "姓名", "性别", "班级" };
// 创建一个二维数组,5表示列数
Object[][] data = new Object[list.size()][5];
// 遍历
for (int i = 0; i < list.size(); i++) {
data[i][0] = list.get(i).getId();
data[i][1] = list.get(i).getSno();
data[i][2] = list.get(i).getName();
data[i][3] = list.get(i).getSex();
data[i][4] = list.get(i).getClassName();
}
// 将数据和表头封装
DefaultTableModel datamoModel = new DefaultTableModel(data, head);
// 将封装好的数据加载
table.setModel(datamoModel);
}
}
(2)具体实现
 
  
按钮操作代码
			button.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					try {
						//获取查询数据
						//textField.getText().trim()获取文本框数据并且去掉空格
						List<Student> list1=service.getStudent(textField.getText().trim());
						//装载到表格
						fillTable(list1);
					} catch (SQLException e1) {
						e1.printStackTrace();
					}
				}
			});
Java课程设计---浏览学生(实现根据姓名查询)的更多相关文章
- Java课程设计---浏览学生(表格的使用)
		1.创建显示表格的窗体 package com.student.view; import java.awt.EventQueue; import javax.swing.JFrame; import ... 
- Java课程设计报告——学生成绩管理系统
		一.需求分析 1.数据存储在数据库和文件中 2.分为"教师"模块和"学生"模块. 3.学生模块提供登陆功能,登陆成功后可查询数学.Java.体育成绩 (学生学号 ... 
- Java课程设计---删除学生
		1.界面已经在上次修改操作的过程添加完成 2.在StudentDao中添加删除方法 public boolean delete(int id) throws SQLException { DbUtil ... 
- Java课程设计---修改学生基本信息
		1.修改窗体 2.在StudentDao中增加修改学生信息的方法 /** * 修改的方法 * * @param student * @return * @throws SQLException */ ... 
- Java课程设计---添加学生
		1.创建添加窗体 package com.student.view; import java.awt.EventQueue; import javax.swing.ButtonGroup; impor ... 
- Java课程设计---索引
		一.基础配置 ============================================================== 1.Java课程设计---Eclipse基本环境配置 2.J ... 
- JAVA课程设计 学生成绩管理
		学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ... 
- Java课程设计—学生成绩管理系统(201521123004-林艺如)
		1.团队课程设计博客 团队课程设计博客链接 2.个人负责模块或任务说明 ①.Menu Menu.jsp 在页面中给出提示,用HTML的 MenuTeacher.jsp 利用Menu.jsp进行具体化完 ... 
- Java课程设计——学生成绩管理系统(201521123003 董美凤)
		Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ... 
随机推荐
- 什么是VPC
			1 什么是私有网络(VPC) 私有网络是一块可用户自定义的网络空间,您可以在私有网络内部署云主机.负载均衡.数据库.Nosql快存储等云服务资源.您可自由划分网段.制定路由策略.私有网络可以配置公网网 ... 
- HTML(前端web)
			目录 一:HTML前端 1.什么是前端? 2.什么是后端? 3.什么是HTML? 4.HTML不是什么? 5.前端的学习流程 6.BS架构 7.搭建服务器 简易(浏览器访问) 8.浏览器访问报错原因 ... 
- linux中三剑客之一grep命令
			目录 一:grep语法格式: 二:参数: 三:正则表达式 1.linux正则表达式 2.普通正则表达式 四:正则与grep实战案例实战: grep简介: linux 三剑客之一,文本过滤器(根据文本内 ... 
- 使用Hot Chocolate和.NET 6构建GraphQL应用(4) —— 实现Query映射功能
			系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在上一篇文章使用Hot Chocolate和.NET 6构建GraphQL应用(3) -- 实现Query基 ... 
- HowToDoInJava 其它教程 1 · 翻译完成
			原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 Maven 教程 如何在 ... 
- Nginx网络压缩 CSS压缩 图片压缩 JSON压缩
			一.序言 使用Nginx作为web应用服务时,会代理如下常见文件:js.css.JSON.图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案. 1.网络压缩原理 网络压缩的原 ... 
- 「JOI 2014 Final」飞天鼠
			「JOI 2014 Final」飞天鼠 显然向上爬是没有必要的,除非会下降到地面以下,才提高到刚好为0. 到达一个点有两种情况:到达高度为0和不为0. 对于高度不为0的情况,显然花费的时间越少高度越高 ... 
- Request与Response
			前言 request和response对象是由服务器创建的.我们来使用它们: request对象是来获取请求消息,response对象是来设置响应消息. Request 定义 服务器进行创建,通过该对 ... 
- Disruptor-高性能队列
			简介 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题.与Kafka.RabbitMQ用于服务间的消息队列不同,disruptor一般用于线程间消息 ... 
- Git远程仓库地址操作
			添加 git remote add test1_origin git@github.com:b84955189/test1.git test1_origin:远程地址名,这里是我自定的. git@gi ... 
