基于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("请选择正确的操作!");
}
}
}
数据库操作:
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