利用Map集合储存并打印数据库信息
利用Map集合储存并打印数据库信息 java练习题 实验目的: 1、 学习哈希映射的创建; 2、 掌握使用HashMap来创建键-值对; 3、 掌握通过键来查找对应的值。 实验要求: 任务一: 编写一个Java应用程序,完成以下功能。 (1)编写Student类,包括姓名、学号、性别以及学生的身份(身份可以是学生、班长、学委、副班长)。 (2)定义一个map集合存放一组学生信息,键值为学号,value为Student对象。 遍历集合,输出集合中的所有键-值对。 (3)提交源码和运行截图。 package Test; import java.util.HashMap; impo 【知识点详解】 在这个Java练习题中,主要涉及以下几个知识点: 1. **Map接口与HashMap类**: Map接口是Java集合框架的一部分,它允许我们存储键值对,其中每个键都是唯一的。HashMap类实现了Map接口,它使用哈希表来存储键值对,提供了高效的插入、删除和查找操作。在这个实验中,我们用HashMap来存储学生信息,键是学生的学号,值是Student对象。 2. **自定义类Student**: 实验要求创建一个名为`Student`的类,包含姓名、学号、性别和学生身份属性。这些属性代表了学生的基本信息。学生身份可以是枚举类型,例如`StudentType`,包含`STUDENT`, `CLASSMonitor`, `VICE_CLASSMonitor`, `STUDENTCommittee`等,以提高代码的可读性和可维护性。 3. **键值对的遍历**: 使用Map的`entrySet()`方法可以获取所有的键值对,然后通过foreach循环遍历这些键值对。在循环中,我们可以分别获取键(Key)和值(Value)。在这个实验中,键是学号,值是Student对象,因此我们打印出每个学号及其对应的学生对象。 4. **数据库操作**: - **DAO(Data Access Object)模式**:这是一种设计模式,用于封装对数据库的访问,使得业务逻辑与数据访问逻辑分离。这里有一个`StudentDao`接口和它的实现类`StudentDaoImpl`。 - **SQL查询**:使用预编译的`PreparedStatement`执行SQL查询,根据班级号获取学生信息。这样可以防止SQL注入攻击,并且提高查询效率。 - **结果集处理**:通过`ResultSet`遍历查询结果,将每条记录转换为`Student`对象,并存入HashMap。 5. **数据库连接管理**: `DBConnection`类可能是用来管理数据库连接的工具类,提供获取数据库连接的方法。使用`Connection`对象来执行SQL语句。 6. **输入输出处理**: 使用`Scanner`类从控制台接收用户输入的班级号,然后调用`StudentDaoImpl`的方法查询数据库,并输出查询结果。 7. **异常处理**: 在数据库操作中,通常需要捕获和处理`SQLException`,确保程序在出现错误时能优雅地终止或给出错误提示。 8. **接口与实现**: `StudentDao`接口定义了数据库操作方法,`StudentDaoImpl`实现了这个接口,提供了具体的操作实现。这是面向接口编程的一种实践,增加了代码的灵活性和可扩展性。 9. **集合操作**: 使用`List`集合(如`ArrayList`)来存储多个`Student`对象也是常见的做法,特别是在需要对数据进行排序或者有多条记录的情况下。但在这个实验中,直接使用Map存储,更便于通过学号快速查找学生信息。 这个练习涵盖了Java基础、集合框架、面向对象设计、数据库操作以及输入输出处理等多个核心概念,旨在提高开发者对Java语言特性和数据操作的理解与应用能力。