教务管理系统连接数据库(Java连接Mysql)

 运用switch-case,实现基本的学生数据库功能:

1.建立连接需要mysql-connector-java-连接包

 

2.这里的sql语句都应该使用preparedstament,preparedstament是预编译的,对于批量的处理可以提高效率。

3.statement,适用于只执行一次性存储的时候,一次性存储时,preparedstatement会消耗更多的资源

4.statement和preparedstatement的区别在于statement每执行一次,相关数据库都要执行SQL语句的编译处理,preparedstatement是采用预编译的方法,支持批量处理。

package 教务管理系统JDBC;

import java.io.IOException;
import java.sql.*;
import java.util.Scanner;

import static java.lang.System.exit;
import static java.time.Clock.system;

public class Test01 {
    public static void main(String[] args) {
        ResultSet resultSet=null;
        Connection connection=null;
        Scanner scanner=null;
        PreparedStatement preparedStatement=null;
        PreparedStatement preparedStatement2=null;
        try {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String url = "jdbc:mysql://127.0.0.1:3306/educationmanage";
            scanner=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String user=scanner.next();
            System.out.println("请输入密码");
            String password=scanner.next();
            connection=  DriverManager.getConnection(url,user,password);
            System.out.println("-------------连接成功");
           while(true){
               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("-------------选取课程:           6");
               System.out.println("-------------退出系统:           7");
               System.out.println("-------------请输入功能对应数字");
               int n=scanner.nextInt();
               //3.创建执行sql语句的对象
               String sql="";
               String sql2="";
               switch (n) {
                   case 1:
                       sql = "select * from student";
                       break;
                   case 2:
                       sql = "select * from student where sname=?";
                       break;
                   case 3:
                       sql ="SELECT kcname,tname,skcscore,kccredit from " +
                               "choise,student,course,teacher WHERE \n" +
                               "student.sid=choise.ssid AND choise.skcid=course.kcid AND " +
                               "course.kcteacher=teacher.tid AND student.sname=?";
                       break;
                   case 4:
                       sql="SELECT class.* FROM class,student WHERE" +
                           " class.classname=student.sclass AND student.sname=?";
                        break;
                   case 5:
                       sql="SELECT kcid,kcname,tname,kccredit FROM course,teacher " +
                               "WHERE course.kcteacher=teacher.tid";
                       break;
                   case 6:
                       sql=sql="SELECT kcid,kcname,tname,kccredit FROM course,teacher " +
                               "WHERE course.kcteacher=teacher.tid";
                       sql2="INSERT into choise VALUES(?,?,0)";
                       break;

                   case 7:
                       System.out.println("谢谢使用,再见");
                       exit(0);
               }
               //4.执行sql语句
               preparedStatement=connection.prepareStatement(sql);
               switch(n){
                   case 1:resultSet=preparedStatement.executeQuery();
                       while (resultSet.next()){
                           String sid=resultSet.getString("sid");
                           String sname=resultSet.getString("sname");
                           String ssex=resultSet.getString("ssex");
                           String sage=resultSet.getString("sage");
                           String sclass=resultSet.getString("sclass");
                           String smajor=resultSet.getString("smajor");
                           String sscore=resultSet.getString("sscore");
                           System.out.println("学号:"+sid+"\t"+"姓名:"+sname+"\t"+"性别:"+ssex+"\t"+"年龄:"+sage+"\t"
                                   +"班级:"+sclass+"\t"+"专业:"+smajor+"\t"+"所得学分:"+sscore);
                       }
                       break;
                   case 2: System.out.println("请输入要查询的学生名");
                       String name=scanner.next();
                       preparedStatement.setObject(1,name);
                       resultSet=preparedStatement.executeQuery();
                       while (resultSet.next()){
                           String sid=resultSet.getString("sid");
                           String sname=resultSet.getString("sname");
                           String ssex=resultSet.getString("ssex");
                           String sage=resultSet.getString("sage");
                           String sclass=resultSet.getString("sclass");
                           String smajor=resultSet.getString("smajor");
                           String sscore=resultSet.getString("sscore");
                           System.out.println("学号:"+sid+"\t"+"姓名:"+sname+"\t"+"性别:"+ssex+"\t"+"年龄"+sage+"\t"
                                   +"班级:"+sclass+"\t"+"专业:"+smajor+"\t"+"所得学分:"+sscore);
                       }
                       break;
                   case 3:System.out.println("请输入要查询的学生名");
                       String name2=scanner.next();
                       preparedStatement.setObject(1,name2);
                       resultSet=preparedStatement.executeQuery();
                   while (resultSet.next()){
                       String kcname=resultSet.getString("kcname");
                       String tname=resultSet.getString("tname");
                       String skcscore=resultSet.getString("skcscore");
                       String kccredit=resultSet.getString("kccredit");
                       System.out.println("课程名"+kcname+"\t"+"教师名:"+tname+"\t"+"取得分数"+skcscore+"\t"+"课程学分"+kccredit);
                   }
                      break;
                   case 4:System.out.println("请输入要查询的学生名");
                       String name3=scanner.next();
                       preparedStatement.setObject(1,name3);
                       resultSet=preparedStatement.executeQuery();
                       while(resultSet.next()){
                           String classid=resultSet.getString("classid");
                           String classname=resultSet.getString("classname");
                           String classnumber=resultSet.getString("classnumber");
                           String classinstructor=resultSet.getString("classinstructor");
                           System.out.println("班级id:"+classid+"\t"+"班级名:"+classname+"\t"+"班级人数"+classnumber+
                                   "\t"+"辅导员:"+classinstructor);
                       }
                       break;
                   case 5:resultSet=preparedStatement.executeQuery();
                        while (resultSet.next()){
                            String kcid=resultSet.getString("kcid");
                            String kcname=resultSet.getString("kcname");
                            String tname=resultSet.getString("tname");
                            String kccredit=resultSet.getString("kccredit");
                            System.out.println("课程号:"+kcid+"\t"+"课程名:"+kcname+"\t"+"课程教师:"+tname+"\t" +
                                    "课程学分:"+kccredit);
                        }
                        break;
                   case 6:resultSet=preparedStatement.executeQuery();
                       while (resultSet.next()){
                           String kcid=resultSet.getString("kcid");
                           String kcname=resultSet.getString("kcname");
                           String tname=resultSet.getString("tname");
                           String kccredit=resultSet.getString("kccredit");
                           System.out.println("课程号:"+kcid+"\t"+"课程名:"+kcname+"\t"+"课程教师:"+tname+"\t" +
                                   "课程学分:"+kccredit);
                       }
                       preparedStatement2=connection.prepareStatement(sql2);
                       System.out.println("请输入你的学号:");
                       String xuehao=scanner.next();
                       preparedStatement2.setObject(1,xuehao);
                       System.out.println("请输入你要选择的课程号:");
                       String kchao=scanner.next();
                       preparedStatement2.setObject(2,kchao);
                       preparedStatement2.executeUpdate();
                       System.out.println("选课成功!");
                       break;
               }
           }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            System.out.println("用户名或密码错误");
            throw new RuntimeException(e);
        } finally {
            try {
                resultSet.close();
                preparedStatement.close();
                connection.close();
                scanner.close();
                preparedStatement2.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

 运行结果如下

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
教务管理系统是一个基于WEB的系统,使用JavaMySQL进行开发和数据库管理。通过该系统,可以实现学生管理、课程管理、学院管理、专业管理等功能。具体的开发过程可以按照以下步骤进行: 1. 创建一个对应名称的数据库,并导入项目的SQL文件。可以使用Navicat或其他工具来创建数据库,并将项目提供的SQL文件导入到数据库中。\[2\] 2. 导入项目到IDEA/Eclipse/MyEclipse中,并执行maven clean和maven install命令。这些命令可以确保项目的依赖正确加载,并准备好运行。\[2\] 3. 修改项目中的util/ConnectionUtil.java文件,将其中的数据库信息修改为正确的信息,以便连接MySQL数据库。\[2\] 4. 运行项目,在浏览器中输入http://localhost:8080/student-sys,即可访问教务管理系统管理员的用户名和密码可以使用提供的默认值进行登录。\[2\] 教务管理系统的主要功能包括学生管理、课程管理、学院管理和专业管理。通过系统,可以显示所有学生、添加学生、显示所有课程、添加课程、显示所有学院、添加学院、显示所有专业、设置专业等。\[3\] 总之,教务管理系统是一个基于WEB的系统,使用JavaMySQL进行开发和数据库管理。通过该系统,可以实现学生管理、课程管理、学院管理、专业管理等功能。 #### 引用[.reference_title] - *1* [教务管理系统——数据库课程设计mysql+java](https://blog.csdn.net/weixin_48388330/article/details/122513738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java项目:教务管理系统(java+JSP+layui+servlet+Mysql)](https://blog.csdn.net/yuyecsdn/article/details/125342873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外太空的莫扎特

在校生穷逼一个,呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值