基于JDBC的Java控制台应用 - 学生信息管理系统

帮同学写一个小程序, 通过JDBC连接MySQL数据库, 来操作相关数据表, 并记录和查询信息, 没有图形界面, 是基于控制台来操作的.
xx管理系统.png

项目结构图:
项目结构图.png

其中
vo包里面的User类是一个JavaBean实体类
view包提供无限循环的显示菜单
util工具包, 包括数据类型的转换, 数据库驱动的连接, 封装好的键盘录入操作
driver包: 包含main方法, 是程序的入口, 来启动项目
dao(data access object)包: 定义操作数据库数据的接口和它的实现类

相关代码:
UserManager.java:

package driver;

import view.Menu;

public class UserManager {

    public static void main(String[] args) {
        new Menu();
    }

}

Menu.java:

package view;

import util.InputData;
import dao.IUserDAOImp;
import vo.User;

import java.util.List;

public class Menu {
    IUserDAOImp iu = new IUserDAOImp();
    InputData input = new InputData();

    public Menu() {
        while (true) {
            this.show();
        }
    }

    public void show() {
        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("0.退出");

        User user = null;
        int i = input.getInt("请选择:", "请输入正确的选项!");
        switch (i) {
            case 1:
                int id = input.getInt("请输入人员编号:", "格式不对,请重新输入!");
                String name = input.getString("请输入人员姓名:");
                String sex = input.getString("请输入性别:");
                java.util.Date birthday = input.getDate("请输入出生日期:", "格式不对,请重新输入!");
                user = new User(id, name, sex, birthday);
                if (iu.doInsert(user)) {
                    System.out.println("添加成功!");
                } else {
                    System.out.println("添加失败!");
                }
                break;
            case 2:
                int id2 = input.getInt("请输入人员编号:", "格式不对,请重新输入!");
                try {
                    if (iu.doDelete(id2)) {
                        System.out.println("删除成功!");
                    } else {
                        System.out.println("删除失败!");
                    }
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                break;
            case 3:
                int id3 = input.getInt("请输入人员编号:", "格式不对,请重新输入!");
                String name3 = input.getString("请输入人员姓名:");
                String sex3 = input.getString("请输入性别:");
                java.util.Date birthday3 = input.getDate("请输入出生日期:", "格式不对,请重新输入!");
                user = new User(id3, name3, sex3, birthday3);
                try {
                    if (iu.doUpdate(id3, user)) {
                        System.out.println("修改成功!");
                    } else {
                        System.out.println("修改失败!");
                    }
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                break;
            case 4:
                int id4 = input.getInt("请输入人员编号:", "格式不对,请重新输入!");
                try {
                    user = iu.findById(id4);
                    System.out.println(user);
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                break;
            case 5:
                String keyword5 = input.getString("请输入查询关键字");
                try {
                    List<User> list = iu.findByKey(keyword5);
                    for (User u : list) {
                        System.out.println(u);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;

            case 0:
                System.exit(1);
                break;
            default:
                System.out.println("请选择正确的操作!");
        }
    }
}

数据库操作:
数据库操作png

SQL语句:

use `usermanage`;
create table `user`(
    id int primary key,
    name varchar(25),
    sex varchar(5),
    birthday date
);

演示结果:(右键选中图片, 点击查看图片, 查看高清大图)
演示.gif

最后注意:
该项目因为某些原因, 是GBK编码, 所以为了避免乱码, 需要设置项目的编码为GBK, Eclipse的设置同理. 同时, 里面包含.classpath和.project文件, 也可以直接通过Eclipse打开!
GBK.png

完整代码:
https://github.com/menglanyingfei/Java/blob/master/CodeCollection/JavaSEProjects/JDBC/JDBC.zip

@Author menglanyingfei
@Created on 2017.11.30

博客地址

1、把6个java文件保存到同一文件夹,例如C:\Student.然后将6个java文件分别编译生成相应的字节码(.class)文件,然后,用java 解释器运行主类:C:\Student\java StudentManager 2、使用jar.exe把一些文件压缩成JAR文件,来发布我们的应用程序。我们可以把本java应用程序中涉及到的类文件(*.class)压缩成一个JAR文件,例如StudentManager.jar。 首先,用记事本编写一个清单文件(Manifestfiles): Manifest-Version: 1.0 Main-class: StudentManager Created-By: 1.2.2(Sun Microsystems Inc.) 例如,清单文件命名为moon.mf,保存到C:\Student。 注意:在编写清单文件时,在“Manifest-Version:”和“1.0”之间,“Main-class:”和“StudentManager”之间,以及在“Created-By:”和“1.2.2(Sun Microsystems Inc.)”之间必须有且只有一个空格。 然后,如下生成JAR文件: C:\Student\jar cvfm StudentManager.jar moon.mf *.class 其中,参数C表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字,m表示文件清单文件的名字,v表示生成详细输出到标准输出上。具体运行jar命令请查看 现在就可以将StudentManager.jar拷贝到任何一个安装了java运行环境(jdk版本号须高于1.2.2)的计算机上,只要鼠标双击StudentManager.jar文件就可以运行该java应用程序了。 注意在装了WinRAR解压缩软件的机子上可能不能运行,因此,在发布本系统时,还应该建立一个有如下内容的.bat文件(StudentManager.bat),用记事本编写: javaw -jar StudentManager.jar 保存即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值