实验内容
在MySQL数据库中定义一个hit数据库,其中有一个student表,表中有如下字段:
sid varchar(10) 学号(学号)
sname varchar(20) 姓名
age int 年龄
birthday date 生日
使用DAO模式,编写一个控制台程序,程序运行后显示如下主菜单界面。
输入1后,输出全部学生信息,每行显示一个学生;
输入2后,根据提示输入学号,然后输出某个学生信息或提示未找到学生;
输入3后,根据提示输入一个学生的全部信息后,提示增加成功;
输入4后,先输入要修改的学号,如果没有该学生,提示未找到,如果找到该学生,提示修改该学生的其他信息(学号不能修改,其他信息要逐条显示出来,若不修改直接回车);
输入5后,输入要修改的学号,提示用户是否删除,如用户确定则删除学生。
以上5个操作结束后都返回主菜单。
输入6后,退出程序。
实验过程
建立数据库
打开MySQL,新建一个hit数据库,然后新建student表并在该表中按实验内容格式增添如下选项:
并保存结果
编写连接数据库的DBUtils类
整个实验最核心的内容在于编写与数据库链接的代码,使得在eclipse下即可更改数据库中信息,代码如下:
package cn.edu.hit.utils;
import java.sql.*;
public class DBUtils {
private static Connection con;
private static Statement stmt;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hit", "root", "*****");
stmt = con.createStatement();
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static ResultSet executeQuery(String sql) {
try {
ResultSet rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static int executeUpdate(String sql) {
try {
return stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return -1;
}
}
public static void close() {
try {
stmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注意:getConnection内的*为自己hit数据库的密码
编写主程序和各种类
利用java相关知识按题要求写程序代码即可,下面附上我的程序目录:
完整代码文件结尾附上。
实验结果
数据库信息:
eclipse下运行test主程序:
输入其余序号也可如上进行对数据库的操作。
说明:由于编写此文时间仓促,以及与进行该实验的时间间隔太久,对实验过程并未做出详细的描述,附上完整代码文件如下:https://github.com/120L021526/gao-first.git