基于JDBC的Java控制台应用

来源:互联网 发布:php curl exec返回空 编辑:程序博客网 时间:2024/05/18 02:53

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

博客地址