数据库课程设计:Java+MySQL实现学生管理系统

需求分析
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<Student> list() {
       List<Student> list=new ArrayList<Student>();//是线性列表,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<Student> 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呗。

发布了25 篇原创文章 · 获赞 13 · 访问量 2980

猜你喜欢

转载自blog.csdn.net/qq_43445167/article/details/103715264