需求分析
Java课程设计:实现一个学生管理系统,方便老师对学生信息进行统计管理
用户登录功能
学生管理功能
完善界面交互
数据持久可靠
设计思路
使用Java作为开发语言,MySQL作为数据库,Java Swing做图形界面;
分层解耦:
studentapp分为main函数,dal(数据库层)和gui(界面交互层);
dal层分为:
DBUtil
dal.entity(实体层,映射数据库具体表);
dal.dao(持久层,放接口,功能为发送SQL语句同数据库交互);
dal.dao.impl(dao实现层)等。
gui实现登陆注册,学生管理界面等同使用系统者交互。
具体实现
(1):DBUtils类
public class DBUtils {
final static String DRIVER=“com.mysql.jdbc.Driver”;
final static String URL=“jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=utf-8”;
final static String USER=“root”;
final static String PASSWORD=“123456”;
public static Connection getConnection(){
try{
Class.forName(DRIVER);
Connection connection=DriverManager.getConnection(URL,USER,PASSWORD);
//System.out.println(“连接成功”);
return connection;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
public static void closeConnection(Connection con){
try{
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
很明显这是连接数据库的,连接数据库注意数据库名字不要写错。
(2)Student实体类
package edu.jmi;
public class Student {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
private String name;
private String phone;
//无参构造函数
public Student() {
super();
// TODO Auto-generated constructor stub
}
//有参构造函数
public Student(String id, String name,String phone) {
super();
this.id = id;
this.name = name;
this.phone = phone;
}
}
setter和getter方法主要用于调用对象实现传参数和获取参数的。
(3)StuDao类
public class StuDao {
Connection con=null;
//添加学生信息
public boolean add(Student stu) {
String sql=“insert into student(id,name,phone) values(?,?,?)”;
try {
con=DBUtils.getConnection();
PreparedStatement pstmt=con.prepareStatement(sql);
// System.out.println(con);
pstmt=con.prepareStatement(sql);
pstmt.setString(1, stu.getId());
pstmt.setString(2, stu.getName());
pstmt.setString(3,stu.getPhone());
pstmt.execute();
} catch (Exception e) {
e.printStackTrace();
return false;
} finally{
DBUtils.closeConnection(con);
}
return true;
}
//查看学生列表(1所有)
public List list() {
List list=new ArrayList();//是线性列表,ArrayList是
try {
con=DBUtils.getConnection();
String sql="select * from student";
PreparedStatement pst=con.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){//ֹ
Student stu=new Student();
stu.setId(rs.getString("id"));
stu.setName(rs.getString("name"));
stu.setPhone(rs.getString("phone"));
list.add(stu);
}
} catch (Exception e) {
(4)Main类
public class Main {
public void menu() {
//1.打印菜单
//2.输入菜单
//3.switch菜单选择
int choose;
do {
System.out.println("******************************");
System.out.println("=欢迎进入学生信息管理系统=");
System.out.println(“1.新增学生”);
System.out.println(“2.修改学生”);
System.out.println(“3.删除学生”);
System.out.println(“4.查询学生”);
System.out.println(“5.退出该系统”);
System.out.println(“请选择(1-5):”);
Scanner scanner=new Scanner(System.in);
choose=scanner.nextInt();
System.out.println("******************************");
switch (choose) {
case 1:
myAdd(); //菜单选择1,是新增学生
break;
case 2:
myUpdate(); //菜单选择2,是修改学生
break;
case 3:
myDel(); //菜单选择3,是删除学生
break;
case 4:
myList(); //菜单选择4,是查询学生
break;
case 5: //菜单选择5,是退出该系统
System.out.println("您选择了退出系统,确定要退出吗?(y/n)");
Scanner scan=new Scanner(System.in);
String scanExit=scan.next();
if(scanExit.equals("y")){
System.out.println("您已成功退出系统,欢迎您再次使用!");
System.exit(0);
}
break;
default:
break;
}
} while (choose!=5);
}
//新增学生信息
public void myAdd() {
String continute;
do {
Scanner s=new Scanner(System.in);
String id,name,phone;
System.out.println("====新增学生====");
System.out.println("学号:");
id=s.next();
System.out.println("姓名:");
name=s.next();
System.out.println("手机号:");
phone=s.next();
Student stu=new Student(id,name,phone);
StuDao dao=new StuDao();
boolean ok=dao.add(stu);
if (ok) {
System.out.println("保存成功!");
}else {
System.out.println("保存失败!");
}
System.out.println("是否继续添加(y/n):");
Scanner scanner2=new Scanner(System.in);
continute=scanner2.next();
} while (continute.equals("y"));
}
//删除学生信息
public void myDel(){
Scanner s=new Scanner(System.in);
String id;
System.out.println("====删除学生====");
System.out.println("请输入要删除的学生学号:");
id=s.next();
System.out.println("该学生的信息如下:");
StuDao dao=new StuDao();
System.out.println("学生学号:"+dao.FindById(id).getId());
System.out.println("学生姓名:"+dao.FindById(id).getName());
System.out.println("学生手机号:"+dao.FindById(id).getPhone());
System.out.println("是否真的删除(y/n):");
Scanner scanner3=new Scanner(System.in);
String x=scanner3.next();
if (x.equals("y")) {
Student stu=new Student(id,null,null);
boolean ok=dao.delete(id);
if (ok) {
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
}
}
//修改学生信息
public void myUpdate(){
Scanner s=new Scanner(System.in);
String id;
System.out.println("====修改学生====");
System.out.println("请输入要修改的学生学号:");
id=s.next();
System.out.println("该学生的信息如下:");
StuDao dao=new StuDao();
System.out.println("学生学号:"+dao.FindById(id).getId());
System.out.println("学生姓名:"+dao.FindById(id).getName());
System.out.println("学生手机号:"+dao.FindById(id).getPhone());
System.out.println("请输入新的学生信息:");
Scanner StudentUp=new Scanner(System.in);
String name,phone;
System.out.println("学生姓名:");
name=StudentUp.next();
System.out.println("学生手机号:");
phone=StudentUp.next();
Student stu=new Student(id,name,phone);
//StuDao dao=new StuDao();
boolean ok=dao.update(stu, id);
if (ok) {
System.out.println("保存成功!");
}else {
System.out.println("保存失败!");
}
}
//查询学生信息
public void myList(){
System.out.println("************************");
System.out.println("====查询学生====");
System.out.println("该学生的信息如下:");
System.out.println("学号\t姓名\t手机号");
StuDao dao=new StuDao();
List list=dao.list();
for (Student stuList:list) { //循环打印出查询结果
System.out.println(stuList.getId()+"\t"+stuList.getName()+"\t"+stuList.getPhone());
}
System.out.println("**");
}
public static void main(String[] args) {
Main m=new Main();
m.menu();
}
}
————————————————
其实我就想看看有多少人会进来。
hnust的留个QQ呗。