数据库--exp--一个简单的选课系统
时间:2020-04-16
本文章向大家介绍数据库--exp--一个简单的选课系统,主要包括数据库--exp--一个简单的选课系统使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
//---------------------------------------------------------------------------------------------------------------
1. 数据库schema的相关关系:
S (SID,SNAME,AGE,SEX)
中文语义:学生(学号,姓名,年龄,性别)
SC (SID,CID,GRADE)
中文语义:学习(学号,课程号,成绩)
C (CID,CNAME,TEACHER)
中文语义:课程(课程号,课程名,任课教师)
//---------------------------------------------------------------------------------------------------------------
2.功能要求
b) 读取可选课程信息;
c) 选课;
e) 退选课程;
f) 查看课程选修情况
//----------------------------------------------------------------------------------------------------------------java源码
package sql; import java.sql.*; import java.util.*; public class MySQL { static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/school1?serverTimezone=UTC"; // 数据库的用户名与密码 static final String USER = "root"; static final String PASS = "zsy"; private static Scanner console = new Scanner(System.in); private static Connection conn; public static void main(String[] args) { try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // a.数据库链接 System.out.println("连接数据库"); conn = DriverManager.getConnection(DB_URL,USER,PASS); //job System.out.println("Welcome !\n"); Menu(); // 完成后关闭 conn.close(); }catch(SQLException se){ // 处理 JDBC 错误 se.printStackTrace(); }catch(Exception e){ // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 关闭资源 try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); } public static void Menu() throws SQLException { System.out.println("--------------------OPTIONS---------------------"); System.out.println("1.log in"); System.out.println("0.eixt"); MenuForStu(); } /** * menu * @throws SQLException * */ private static void MenuForStu() throws SQLException { System.out.println("Please input you option number:"); int info = console.nextInt(); do { switch (info) { case 1: login(); //登录 break; case 0: exit(); //退出 break; default: System.out.println("Please input the right number!TRY AGAIN!"); } } while (info != 0); } //------------------------------------------------------------------------------------ public static String login() throws SQLException { //登录选课系统 System.out.println("Please input your SID:"); String SID = console.next(); Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM S WHERE SID= '" +SID+"';"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if ( rs.next() ) { System.out.println("login success!"); choosequest(); } else { System.out.println("there is no this student!"); } rs.close(); stmt.close(); return SID; } //-------------------------------------------选课,往SC里增加数据 private static void choosestucourse() throws SQLException { // TODO Auto-generated method stub Statement ptmt = conn.createStatement(); System.out.println("你现在在选课"); System.out.println("please input SID:"); String SID = console.next(); System.out.println("please input CID:"); String sql; String CID = console.next(); int GRADE = 0; //这里是学生视角,无法修改grade,一律为0 sql = "INSERT INTO SC VALUES ('"+SID+"','"+CID+"',"+GRADE+");"; ptmt.executeUpdate(sql); ptmt.close(); } //-------------------------------------------读取课程 private static void getcourse() throws SQLException { // TODO Auto-generated method stub Statement stmt; System.out.println("所有可选的课程"); stmt = conn.createStatement(); String sql; sql = "SELECT CID, CNAME, TEACHER FROM C"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ String CID = rs.getString("CID"); String CNAME= rs.getString("CNAME"); String TEACHER = rs.getString("TEACHER"); // 输出数据 System.out.print("CID: " + CID); System.out.print(", CNAME: " + CNAME); System.out.print(", TEACHER: " +TEACHER); System.out.print("\n"); } stmt.close(); rs.close(); } //--------------------------------------------------second menu private static void choosequest() throws SQLException { // TODO Auto-generated method stub System.out.println("--------------------OPTIONS---------------------"); System.out.println("1.list course"); System.out.println("2.choose course"); System.out.println("3.course info"); System.out.println("4.quit course"); System.out.println("5.your course"); System.out.println("0.eixt"); MenuForquest(); } private static void MenuForquest() throws SQLException { // TODO Auto-generated method stub System.out.println("Please input you option number:"); int info = console.nextInt(); do { switch (info) { case 1: getcourse(); //读取课程 break; case 2: choosestucourse(); //选课 break; case 3: getstucourse(); //选课信息 break; case 4: quitcourse(); //退课 break; case 5: getcoursestat(); //课程情况 break; case 6: exit(); //退出 break; default: System.out.println("Please input the right number!TRY AGAIN!"); } System.out.println("Please input you option number: "); info = console.nextInt(); } while (info != 0); } private static void getstucourse() throws SQLException { // TODO Auto-generated method stub Statement stmt; System.out.println("你现在在查看你的课程信息"); stmt = conn.createStatement(); String sql; System.out.println("please input SID:"); String SID =console.next(); sql = "SELECT CNAME, TEACHER " +"FROM SC NATURE JOIN C USING (CID) " +"where SID ='"+ SID +"';"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ String CNAME= rs.getString("CNAME"); String TEACHER= rs.getString("TEACHER"); // 输出数据 System.out.print("CNAME: " + CNAME); System.out.print(", TEACHER: " + TEACHER); System.out.print("\n"); } rs.close(); stmt.close(); } private static void getcoursestat() throws SQLException { // TODO Auto-generated method stub Statement stmt; System.out.println("你现在在查看你的选课"); stmt = conn.createStatement(); String sql; System.out.println("please input SID:"); String SID =console.next(); sql = "SELECT CID, CNAME " +"FROM SC nature join C using (CID) " +"where SID ='"+SID+"';"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ String CID = rs.getString("CID"); String CNAME= rs.getString("CNAME"); // 输出数据 System.out.print("CID: " + CID); System.out.print(", CNAME: " + CNAME); System.out.print("\n"); } stmt.close(); rs.close(); } //----------------------------------------选课信息 private static void quitcourse() throws SQLException { // TODO Auto-generated method stub Statement stmt; System.out.println("你现在正在退课"); stmt = conn.createStatement(); String sql; System.out.println("please input SID:"); String SID =console.next(); System.out.println("please input CID:"); String CID = console.next(); sql = "DELETE FROM SC where SID ='"+SID+"'and CID ='"+CID+"';"; stmt.executeUpdate(sql); stmt.close(); } //---------------------------------------------------------------------------- public static int exit() throws SQLException { //退出选课系统 System.out.println("-----------------byebye---------------"); // 完成后关闭 conn.close(); return 2; } // }
原文地址:https://www.cnblogs.com/zsyby/p/12710635.html
- 39. channel管道 | 厚土Go学习笔记
- springmvc学习第二天
- 厚土Go学习笔记 | 38. goroutine轻量级线程
- 厚土Go学习笔记 | 37. 图片(image)生成器
- 编写地道的Go代码
- 开发你不能忽略的问题?JavaScript(JS)
- 厚土Go学习笔记 | 36. web服务指定路径下的get参数接收与处理
- 用R进行文本分析初探——包含导入词库和和导入李白语句
- Golang事务模型
- 厚土Go学习笔记 | 35. web服务器实现动态路径
- 过滤器Filter精华知识点,怎能不看
- JavaMail开发示例,学习要看对资料
- 厚土Go学习笔记 | 34. 一个简单的 web 服务器实现
- sqlplus / as sysdba无法登录的奇怪报错 (r8笔记第36天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel Validator ajax返回错误信息的方法
- Linux下 php7安装redis的办法
- php实现的数组转xml案例分析
- Laravel框架Auth用户认证操作实例分析
- yii2实现Ueditor百度编辑器的示例代码
- PHP下载文件函数与用法示例
- php实现银联商务公众号+服务窗支付的示例代码
- php使用json-schema模块实现json校验示例
- 17个品牌,113款5G手机,5G离我们越来越近。
- PHP的cookie与session原理及用法详解
- Thinkphp5.0框架视图view的循环标签用法示例
- Thinkphp5.0 框架视图view的比较标签用法分析
- laravel 操作数据库常用函数的返回值方法
- laravel 验证错误信息到 blade模板的方法
- thinkPHP+LayUI 流加载实现功能