Java课设--学生信息管理系统(例1)

文章目录

  • 前提
  • 一、运行效果
  • 二、Text实现类
  • 三、Manage选择类
  • 四、StudentWay学生方法类
  • 五、StudnetSql数据库类


前题

例1为无使用GUI图形界面,例2使用GUI图形界面!

首先自己的JDBC驱动已经接好了,连接自己的数据库没有问题。连接数据库可以看其他博主教程,不是很难。

其次我用的是idea+SQL Server数据库。

最后我的数据的库名称为stu,表名称为student,可以自己创建一张,内容如下:


一、运行效果

 

  

所需四个类如下:

 

 

 


 

二、Text实现类

Text为实现所有类,含有main方法,源代码如下:

package 自我课设;public class Text {public static void main(String[] args) {Manage manage = new Manage();manage.manager();}
}

  


三、Manage选择类

用于选择6种方法,运用case来选择,源代码如下:

package 自我课设;import java.util.*;
public class Manage {public void manager(){StudentWay studentWay = new StudentWay();Scanner in = new Scanner(System.in);int flag = 0;while(true) {studentWay.printManage();System.out.println(" 请输入要执行的操作:");flag = in.nextInt();in.nextLine();if(flag == 6) break;else {switch (flag) {case 1://查询全部studentWay.selectStudent();break;case 2://添加信息studentWay.addStudent();break;case 3://删除学生信息studentWay.deleteStudent();break;case 4://修改学生信息studentWay.updateStudent();break;case 5://查询相关信息studentWay.selectOther();break;}}}}
}

 


四、StudentWay学生方法类

写好增删查改的方法给到Manage去调用,源代码如下:

package 自我课设;import java.util.Scanner;public class StudentWay {StudentSql sql = new StudentSql();Scanner in = new Scanner(System.in);String sno = "", sname = " ", sex = " ", sage = " ", dept = " ";//输出界面图public void printManage() {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("--------------------------------------------------------");}//查询学生信息public void selectStudent() {System.out.println("查询全体学生信息:");System.out.print(sql.QuerySQL());}//删除学生信息public void deleteStudent() {System.out.println("请输入要删除的学生的学号:");sno = in.nextLine();System.out.print(sql.delete_student(sno));}//添加学生信息public void addStudent() {System.out.println("请输入要添加的学生的信息(以单个空格隔开):");String str = in.nextLine();String[] S = str.split(" ");sno = S[0];sname = S[1];sex = S[2];sage = S[3];dept = S[4];System.out.print(StudentSql.insert_student(sno, sname, sex, sage, dept));}//修改学生信息public void updateStudent() {System.out.println("请输入要修改的学生的学号:");sno = in.nextLine();System.out.println("请输入学生姓名、性别、年龄、学院,以单个空格隔开(学号不可修改):");String str2 = in.nextLine();String[] S2 = str2.split(" ");sname = S2[0];sex = S2[1];sage = S2[2];dept = S2[3];StudentSql.update_student(sno, sname, sex, sage, dept);System.out.println("修改成功!");}//查询分类的学生信息public void selectOther() {System.out.println(" 1.按学院查询   ");System.out.println(" 2.按学号查询  ");System.out.println(" 3.按性别查询  ");int FLG = Integer.parseInt(in.nextLine());//in.nextInt();switch (FLG) {case 1://按学院查询System.out.println("要查询的学院:");String temp_xueyuan = in.nextLine();System.out.print(sql.QuerySQL_dept(temp_xueyuan));break;case 2://按学号查询System.out.println("要查询学生的学号:");String temp_sno = in.nextLine();System.out.print(sql.QuerySQL_sno(temp_sno));break;case 3://按性别查询System.out.println("要查询的性别:");String temp_sex = in.nextLine();System.out.print(sql.QuerySQL_sex(temp_sex));break;}}
}


五、StudnetSql数据库类

StudentSql类写数据库的语句对数据库直接进行操作,然后给StudnetWay调用,源代码如下:

package 自我课设;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class StudentSql
{//连接数据库private static Connection getSQLConnection(String db,String user, String pwd){Connection con = null;try{//Class.forName("net.sourceforge.jtds.jdbc.Driver");  查看驱动器JDBC是否导入成功//con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db + ";charset=utf8", user, pwd);//jdbc:jtds:sqlserver://localhost:1433/dbname//解决输出中文乱码con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;encrypt=false;DatabaseName="+ db , user, pwd);}catch (SQLException e) {e.printStackTrace();}return con;}//查询学生信息public static String QuerySQL(){String result = "";try{Connection conn = getSQLConnection("stu","sa","123456");String sql = "select  *from student";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);System.out.println("学号   姓名   性别   年龄   学院");//System.out.println(rs);while (rs.next()){//学号、姓名、性别、年龄、学院String s1 = rs.getString("sno");String s2 = rs.getString("sname");String s3 = rs.getString("ssex");String s4 = rs.getString("sage");String s5 = rs.getString("dept");result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";}rs.close();stmt.close();conn.close();} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//添加学生信息public static String insert_student(String sno, String name, String sex, String sage,String dept){//学号、姓名、性别、年龄、学院String result = "";try{Connection conn = getSQLConnection("stu","sa","123456");String sql = "insert into  student values ('"+sno+"','"+name+"','"+sex+"','"+sage+"','"+dept+"');";Statement stmt = conn.createStatement();stmt.executeUpdate(sql);stmt.close();conn.close();result+="添加成功!"+"\n";} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//删除学生信息public static String delete_student(String sno){//学号、姓名、性别、年龄、学院String result = "";try{Connection conn =  getSQLConnection("stu","sa","123456");String sql = "delete student where sno = " + sno;Statement stmt = conn.createStatement();stmt.executeUpdate(sql);stmt.close();conn.close();result+="删除成功!\n";} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//按学号修改public static String update_student(String sno, String name, String sex, String sage,String dept){//学号、姓名、性别、年龄、学院String result = "";try{Connection conn = getSQLConnection("stu","sa","123456");String sql = "update student set sname='"+name+"',ssex='"+sex+"',sage='"+sage+"',dept='"+dept+"'" +" where sno='"+sno+"' ";Statement stmt = conn.createStatement();stmt.executeUpdate(sql);stmt.close();conn.close();result+="修改成功!"+"\n";} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//按学号查询public static String QuerySQL_sno(String sno){String result = "";try{Connection conn =  getSQLConnection("stu","sa","123456");String sql = "select *from student where sno = '"+ sno+"';";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);while (rs.next()){//学号、姓名、性别、年龄、学院String s1 = rs.getString("sno");String s2 = rs.getString("sname");String s3 = rs.getString("ssex");String s4 = rs.getString("sage");String s5 = rs.getString("dept");result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";}rs.close();stmt.close();conn.close();} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//按性别查询public static String QuerySQL_sex(String sex){String result = "";try{Connection conn =  getSQLConnection("stu","sa","123456");String sql = "select * from student where ssex = '"+sex+"';";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);while (rs.next()){//学号、姓名、性别、年龄、学院String s1 = rs.getString("sno");String s2 = rs.getString("sname");String s3 = rs.getString("ssex");String s4 = rs.getString("sage");String s5 = rs.getString("dept");result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";}rs.close();stmt.close();conn.close();} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}//按学院查询public static String QuerySQL_dept(String dept){String result = "";try{Connection conn =  getSQLConnection("stu","sa","123456");String sql = "select * from student where dept = '"+ dept +"';";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);//System.out.println(rs);while (rs.next()){//学号、姓名、性别、年龄、学院String s1 = rs.getString("sno");String s2 = rs.getString("sname");String s3 = rs.getString("ssex");String s4 = rs.getString("sage");String s5 = rs.getString("dept");result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";// System.out.println(s1 + "  -  " + s2);}rs.close();stmt.close();conn.close();} catch (SQLException e){e.printStackTrace();result += "数据输入异常!" + e.getMessage()+"\n";}return result;}}


如果这篇文章对你有帮助,请不要忘了点赞收藏加关注哦!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包

1.简介 本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了,可是有人留言问WebSocket包和小程序的包不会抓,那就关于这两个知识点宏哥就再水两篇文章。 2.什么是Socket? 在计算机通信领域,socket 被翻译为“套接字…

物联网||不一样的点灯实验(2)|通过使用CMSIS库函数实现点灯实验-学习笔记(12)

文章目录 通过使用CMSIS库函数实现点灯实验1 如何使用CMIS库2 如何利用CMSIS库操作IO 两种实现方法的比较课后作业:完整代码:LED.C:test.c:led.h:systick.h:systick.c: 通过使用CMSIS库函数实现点灯实验 1 如何使用CMIS库 #####如何使用此驱动#####[. .](#)启用GPI…

langchain-ChatGLM源码阅读:参数设置

文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数: 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…

RichTextBox基本用法

作用:富文本编辑器,支持多种文本展示 常用属性: 允许显示多行 自动换行 展示滚动条 ScrollBars属性值: 1、Both:只有当文本超过RichTextBox的宽度或长度时,才显示水平滚动条或垂直滚动条,或两…

基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、讲解 💥1 概述 由于能源的日益匮乏,电力需求的不断增长等,配电网中分布式能源渗透率不断提高,且逐渐向主动配电网方…

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台2

吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成本的简易机器人呢?也许只需要二十元左右 知识点:轮子(wheel) 中国词语。是用不同材料制成的圆形滚动物体。简…

Mac端口扫描工具

端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 https://zhhll.icu/2022/Mac/端口扫描工具/ 本文由 mdnice 多平台发布

【具生智能】前沿思考与总结(DALL-E-Bot TinyBot)

1. DALL-E-Bot DALL-E-Bot: Introducing Web-Scale Diffusion Models to Robotics (robot-learning.uk) **(2023-05-04)**DALL-E-Bot: Introducing Web-Scale Diffusion Models to Robotics DALL-E-Bot:将网络规模的扩散模型引入机器人 第…

C语言----动态内存分配(malloc calloc relloc free)超全知识点

目录 一.动态内存函数 1.malloc 2.free 3.calloc 4.malloc和calloc的区别 5.realloc 二.动态内存分配的常见错误 1.对null进行解引用操作 2.对动态开辟空间的越界访问 3.对非动态开辟内存使用free释放 4.使用free释放动态开辟内存的一部分 5.对同一块动态内存多次…

物联网|按键实验---学习I/O的输入及中断的编程|读取I/O的输入信号|中断的编程方法|轮询实现按键捕获实验-学习笔记(13)

文章目录 实验目的了解擒键的工作原理及电原理图 STM32F407中如何读取I/O的输入信号STM32F407对中断的编程方法通过轮询实现按键捕获实验如何利用已有内工程创建新工程通过轮询实现按键捕获代码实现及分析1 代码的流程分析2 代码的实现 Tips:下载错误的解决 实验目的 了解擒键…

Leetcode-每日一题【剑指 Offer 09. 用两个栈实现队列】

题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [&…

springboot第34集:ES 搜索,nginx

#用search after解决深分页性能问题 #第一页 GET /bank/_search {"size": 10,"sort": [{"account_number": {"order": "asc"}}] }#第二页 GET /bank/_search {"size": 10,"sort": [{"account_numb…

【WEB逆向】前端全报文加密的分析技巧

由于前端全报文加密,无法从变量的全文搜索来快速定位加密函数对加密参数的定位(全局搜索还有个弊病是编码混淆的js也不能全局搜到,需要进一步分析判定混淆的编码形式后再全局搜编码后的变量名),因此可利用xhr断点全局拦…

LLM reasoners 入门实验 24点游戏

LLM reasoners Ber666/llm-reasoners 实验过程 实验样例24games,examples/tot_game24,在inference.py中配置使用代理和open ai的api key。 首先安装依赖 git clone https://github.com/Ber666/llm-reasoners cd llm-reasoners pip install -e .然后…

【雕爷学编程】Arduino动手做(187)---1.3寸OLED液晶屏模块2

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

Spring Security OAuth2.0(7):自定义认证连接数据库

自定义认证连接数据库 首先创建数据库和用户表 CREATE TABLE t_user (id bigint(20) NOT NULL AUTO_INCREMENT,username varchar(64) DEFAULT NULL,password varchar(64) DEFAULT NULL,fullname varchar(255) DEFAULT NULL,mobile varchar(20) DEFAULT NULL,PRIMARY KEY (id)…

MacOS使用brew如何下载Nginx

首先,第一步切换源: 切换 brew.git 仓库地址: cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git 替换 homebrew-core.git 仓库地址: cd "$(brew --repo)/Library/Taps/home…

LabVIEW 开发在不确定路况下自动速度辅助系统

LabVIEW 开发在不确定路况下自动速度辅助系统 智能驾驶辅助系统是汽车行业最先进的升级和尖端技术,智能交通系统依靠智能驾驶辅助系统在公共交通部门工作。该智能驾驶辅助系统技术包括自适应巡航控制,防抱死制动系统,安全气囊展开&#xff0…

【机器学习】编码、创造和筛选特征

在机器学习和数据科学领域中,特征工程是提取、转换和选择原始数据以创建更具信息价值的特征的过程。假设拿到一份数据集之后,如何逐步完成特征工程呢? 文章目录 一、特性类型分析1.1 数值型特征1.2 类别型特征1.3 时间型特征1.4 文本型特征1.…

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection (arXiv 2018)

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection - 密集目标检测中的焦点损失(arXiv 2018) 摘要1. 引言2. 相关工作References 声明:此翻译仅为个人学习记录 文章信息 标题:RetinaNet: Focal Loss for Dense Obje…