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

2017-11-30  本文已影响742人  梦蓝樱飞2020

帮同学写一个小程序, 通过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

博客地址

上一篇下一篇

猜你喜欢

热点阅读