Java 实现学生信息管理系统
编写一个简单的学生管理信息系统。
在oracle中设计一张学生表,以学号作为关键字。
其他学生信息有:姓名、手机号。
在进入系统时,显示如下菜单:
**************************************************
=====欢迎进入学生管理信息系统=====
1. 新增学生
2. 修改学生
3. 删除学生
4. 查询学生
5. 退出系统
请选择(1-5):
**************************************************
(1) 新增学生功能:
**************************************************
=====新增学生=====
学号:
姓名:
手机号:
保存成功!
是否继续添加(y/n):
*************************************************
(2) 修改学生功能:
**************************************************
=====修改学生=====
请输入要修改的学生学号:111
该学生信息如下:
学生学号:111
学生姓名:张三
学生手机号:13333333333
请输入新的学生信息:
学生姓名:李四
学生手机号:13333333333
保存成功!
**************************************************
(3) 删除学生功能:
**************************************************
=====删除学生=====
请输入要删除的学生学号:111
该学生信息如下:
学生学号:111
学生姓名:张三
学生手机号:13333333333
是否真的删除(y/n):y
删除成功!
**************************************************
(4) 查询学生功能
**************************************************
=====查询学生=====
学生信息如下:
学号 姓名 手机号
111 张三 13333333333
222 李四 14444444444
**************************************************
编程思路:
一、定义一个学生管理类,内有增、删、改、查4个方法。
二、在main函数中,实例化学生管理类,并根据菜单的选项分别调用4个方法。
三、使用PreparedStatement的参数赋值,示例如下:
PreparedStatementpstmt = con.prepareStatement("insert into book values(?, ?, ?)");
pstmt.setString(1, "333");
pstmt.setString(2, "王五");
pstmt.setString(3, "15555555555");
pstmt.executeUpdate();
【实现过程】
1.数据库建stu表:
2.设计一个学生实体类(Stu.java)
- package Stu;
- //实体类,封装学生类数据
- /**
- * @authorScatlett
- */
- publicclassStu {
- private String no; //学号
- private String name; //姓名
- private String phone; //手机号
- //getter setter
- public String getNo() {
- returnno;
- }
- publicvoidsetNo(String no) {
- this.no = no;
- }
- public String getName() {
- returnname;
- }
- publicvoidsetName(String name) {
- this.name = name;
- }
- public String getPhone() {
- returnphone;
- }
- publicvoidsetPhone(String phone) {
- this.phone = phone;
- }
- //无参构造函数
- public Stu() {
- super();
- // TODO Auto-generated constructor stub
- }
- //有参构造函数
- public Stu(String no, String name, String phone) {
- super();
- this.no = no;
- this.name = name;
- this.phone = phone;
- }
- }
3.创建封装一个(DBUtil.java),用于连接到Oracle数据库
- package Stu;
- importjava.sql.Connection;
- importjava.sql.DriverManager;
- importjava.sql.ResultSet;
- importjava.sql.SQLException;
- importjava.sql.Statement;
- publicclassDBUtil {
- privatestaticfinal String DRIVER_NAME = "oracle.jdbc.driver.OracleDriver";
- privatestaticfinal String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
- privatestaticfinal String USER = "scott";
- privatestaticfinal String PASS = "tiger";
- publicstatic Connection getCon() throwsClassNotFoundException,
- SQLException {
- Connection con = null;
- Class.forName(DRIVER_NAME);
- con = DriverManager.getConnection(URL, USER, PASS);
- return con;
- }
- publicstaticvoid close(Connection con, Statement stmt, ResultSetrs) {
- try {
- if (rs != null) {
- rs.close();
- }
- if (stmt != null) {
- stmt.close();
- }
- if (con != null) {
- con.close();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
4.创建一个学生管理数据访问对象(StuDao.java)
- packagestudao;
- //学生管理数据访问对象StuDao
- importjava.sql.Connection;
- importjava.sql.PreparedStatement;
- importjava.sql.ResultSet;
- importjava.sql.SQLException;
- importjava.util.ArrayList;
- importjava.util.List;
- importStu.DBUtil;
- importStu.Stu;
- publicclassStuDao {
- private Connection con;
- privatePreparedStatementpstmt;
- privateResultSetrs;
- //添加学生信息
- publicboolean add(Stu stu) {
- String sql="insert into stu(stu_no,stu_name,phone) values(?,?,?)";
- try {
- con=DBUtil.getCon();
- pstmt=con.prepareStatement(sql);
- pstmt.setString(1, stu.getNo());
- pstmt.setString(2, stu.getName());
- pstmt.setString(3, stu.getPhone());
- pstmt.executeUpdate();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- returnfalse;
- } catch (SQLException e) {
- e.printStackTrace();
- returnfalse;
- } finally{
- DBUtil.close(con, pstmt, rs);
- }
- returntrue;
- }
- //查看学生列表(1所有)
- public List<Stu> list() {
- List<Stu> list=newArrayList<Stu>();//是线性列表,ArrayList是
- String sql="select * from stu";
- try {
- con=DBUtil.getCon();
- pstmt=con.prepareStatement(sql);
- //pstmt.executeUpdate();//用于增删改
- rs=pstmt.executeQuery();//用于查询
- while (rs.next()) {
- //Stustu=new Stu(rs.getString("stu_no"),rs.getString("stu_name"),rs.getString("phone"));
- //上行写法亦可为:
- Stu stu=new Stu();
- stu.setNo(rs.getString("stu_no"));//取结果集里面学号这一列的值赋给
- stu.setName(rs.getString("stu_name"));
- stu.setPhone(rs.getString("phone"));
- list.add(stu);
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally{
- DBUtil.close(con, pstmt, rs);
- }
- return list;
- }
- //查看学生列表(2根据学生学号显示学生信息)
- public Stu findSomeone(String no) {
- Stu stu=null;
- String sql="select * from stu where stu_no=?";
- try {
- con=DBUtil.getCon();
- pstmt=con.prepareStatement(sql);
- //pstmt.executeUpdate();//用于增删改
- pstmt.setString(1,no);
- rs=pstmt.executeQuery();//用于查询
- while (rs.next()) {
- //Stustu=new Stu(rs.getString("stu_no"),rs.getString("stu_name"),rs.getString("phone"));
- //上行写法亦可为:
- stu=new Stu();
- stu.setNo(rs.getString("stu_no"));//取结果集里面学号这一列的值赋给
- stu.setName(rs.getString("stu_name"));
- stu.setPhone(rs.getString("phone"));
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally{
- DBUtil.close(con, pstmt, rs);
- }
- returnstu;
- }
- //修改学生信息
- publicboolean update(Stu stu) {
- String sql="update stu set stu_name=?,phone=? wherestu_no=?";
- try {
- con=DBUtil.getCon();
- pstmt=con.prepareStatement(sql);
- pstmt.setString(3, stu.getNo());
- pstmt.setString(1, stu.getName());
- pstmt.setString(2, stu.getPhone());
- pstmt.executeUpdate();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- returnfalse;
- } catch (SQLException e) {
- e.printStackTrace();
- returnfalse;
- } finally{
- DBUtil.close(con, pstmt, rs);
- }
- returntrue;
- }
- //删除学生信息
- publicboolean del(String id) {
- String sql="delete from stu where stu_no=?";
- try {
- con=DBUtil.getCon();
- pstmt=con.prepareStatement(sql);
- pstmt.setString(1,id);
- pstmt.executeUpdate();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- returnfalse;
- } catch (SQLException e) {
- e.printStackTrace();
- returnfalse;
- } finally{
- DBUtil.close(con, pstmt, rs);
- }
- returntrue;
- }
- }
5.学生信息管理系统的菜单选择实现
- package Stu;
- //学生信息管理系统的菜单选择
- importjava.sql.Connection;
- importjava.util.List;
- importjava.util.Scanner;
- importjavax.print.DocFlavor.INPUT_STREAM;
- importorg.omg.CORBA.PUBLIC_MEMBER;
- importstudao.StuDao;
- publicclassStuManage {
- publicvoid 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.exit(-1);
- System.out.println("您已成功退出系统,欢迎您再次使用!");
- }
- break;
- default:
- break;
- }
- } while (choose!=5);
- }
- //新增学生信息
- publicvoidmyAdd() {
- String continute;
- do {
- Scanner s=new Scanner(System.in);
- String no,name,phone;
- System.out.println("====新增学生====");
- System.out.println("学号:");
- no=s.next();
- System.out.println("姓名:");
- name=s.next();
- System.out.println("手机号:");
- phone=s.next();
- Stu stu=new Stu(no,name,phone);
- StuDaodao=newStuDao();
- 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"));
- }
- //删除学生信息
- publicvoidmyDel(){
- Scanner s=new Scanner(System.in);
- String no;
- System.out.println("====删除学生====");
- System.out.println("请输入要删除的学生学号:");
- no=s.next();
- System.out.println("该学生的信息如下:");
- StuDaostuDao=newStuDao();
- System.out.println("学生学号:"+stuDao.findSomeone(no).getNo());
- System.out.println("学生姓名:"+stuDao.findSomeone(no).getName());
- System.out.println("学生手机号:"+stuDao.findSomeone(no).getPhone());
- System.out.println("是否真的删除(y/n):");
- Scanner scanner3=new Scanner(System.in);
- String x=scanner3.next();
- if (x.equals("y")) {
- Stu stu=new Stu(no,null,null);
- StuDaodao=newStuDao();
- boolean ok=dao.del(no);
- if (ok) {
- System.out.println("删除成功!");
- }else {
- System.out.println("删除失败!");
- }
- }
- }
- //修改学生信息
- publicvoidmyUpdate(){
- Scanner s=new Scanner(System.in);
- String no;
- System.out.println("====修改学生====");
- System.out.println("请输入要修改的学生学号:");
- no=s.next();
- System.out.println("该学生的信息如下:");
- StuDaostuDao=newStuDao();
- System.out.println("学生学号:"+stuDao.findSomeone(no).getNo());
- System.out.println("学生姓名:"+stuDao.findSomeone(no).getName());
- System.out.println("学生手机号:"+stuDao.findSomeone(no).getPhone());
- System.out.println("请输入新的学生信息:");
- Scanner stuUp=new Scanner(System.in);
- String name,phone;
- System.out.println("学生姓名:");
- name=stuUp.next();
- System.out.println("学生手机号:");
- phone=stuUp.next();
- Stu stu=new Stu(no,name,phone);
- StuDaodao=newStuDao();
- boolean ok=dao.update(stu);
- if (ok) {
- System.out.println("保存成功!");
- }else {
- System.out.println("保存失败!");
- }
- }
- //查询学生信息
- publicvoidmyList(){
- System.out.println("************************");
- System.out.println("====查询学生====");
- System.out.println("该学生的信息如下:");
- System.out.println("学号\t姓名\t手机号");
- StuDaostuDao=newStuDao();
- List<Stu> list=stuDao.list();
- for (Stu stuList:list) { //循环打印出查询结果
- System.out.println(stuList.getNo()+"\t"+stuList.getName()+"\t"+stuList.getPhone());
- }
- System.out.println("************************");
- }
- }
6.最后编写一个主函数测试类
- package Stu;
- //主函数测试类
- publicclass Main {
- /**
- * @paramargs
- */
- publicstaticvoid main(String[] args) {
- StuManage s=newStuManage();
- s.menu();
- }
- }
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
7.程序测试结果截图:
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
(1) 新增学生信息
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
(2) 修改学生信息
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
(3) 删除学生信息
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
(4) 查询学生信息
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
Java 实现学生信息管理系统的更多相关文章
- java开发学生信息管理系统的实现(简洁易懂),适合计算机专业学生参考,课程设计、毕业论文设计参考等
编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...
- JAVA之学生信息管理系统
StudentManager系统 系统的数据: 变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数字组成) 变量 name 为字符串类型 String,用于存储学生 ...
- java开发学生信息管理系统 源码
开发环境: Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php?mo ...
- Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- Java课设(学生信息管理系统)
1.团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模板或任务说明 设计登陆界面和学生信息界面的设计,学生信息的显示.退出等功 ...
- Java用户名登录学生信息管理系统并对其进行增删改查操作
package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...
- Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- 【JAVA】简陋的学生信息管理系统
因为之前写了一个学生信息管理系统,但还是处于命令行界面,不美观,于是打算做一个完整的界面出来. 在网上查阅资料后发现C++本身是不支持图形化界面的(可以使用第三方的Qt来做) 权衡之下还是选择了JAV ...
- Java课程设计---学生信息管理系统需求分析及总体设计
按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...
随机推荐
- (spring-第11回【IoC基础篇】)BeanWrapper--实例化Bean的第四大利器
重复是理解和记忆的最好方法.在讲实例化Bean的每个步骤之前,我都会先复习一下Bean实例化的整个过程: 结合图片我们回顾一下具体的过程: ResourceLoader加载配置信息, 由BeanDef ...
- vector 初始化
//数组初始化vector int iarray[]={1,2,3,4,5,6,7,8,9,0}; //count: iarray数组个数 size_t count=sizeof(iarray)/si ...
- AngularJS基本指令
<!doctype html> <html ng-app> <head> <meta charset="UTF-8"> & ...
- CodeForces 416D (贪心)
Problem Population Size 题目大意 给一个长度为n的序列,由 -1 和正整数组成,-1表示任意的正整数. 将序列分成若干段,使得任意段都是等差数列,求最少段数. 解题分析 可以发 ...
- 查看linux版本时32位的还是64位的
一. [root@wuy2 etc]# getconf LONG_BIT [root@wuy2 etc]# getconf WORD_BIT (32位的系统中int类型和long类型一般都是4字节,6 ...
- 如何为libs目录下的jar包关联源代码
以前,我们可以为lib目录下的jar包关联源代码,但是现在似乎不行了. 下面是一篇讲述此问题解决方法的文章: How to attach javadoc or sources to jars in l ...
- Maven构建web项目在Eclipse中部署的几种方法
目录: 方法一:运用Maven的plugin:jetty来部署web 方法二:运用Eclipse 的Jetty插件直接部署 方法三:运用Run on Server(tomcat)部署 [方法一].运用 ...
- .NET 里 静态方法的并发处理
静态方法在程序运行时 就已经实例化好了 不管多少用户并发 都一样处理,不需要排队等待,实例代码: namespace DotNet.Example { using DotNet.BaseManager ...
- SQL编写
//用户表,用户ID,用户名称create table t_user (user_id int,username varchar(20));//用户帐户表,用户ID,用户余额(单位分)create t ...
- tyvj1014 - 乘法游戏 ——记忆化搜索DP
题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1014 f[i][j]表示区间[i,j]所得到的最小值. 不断地划分区间,把结果保存起来. #includ ...