幫同學(xué)寫(xiě)一個(gè)小程序, 通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù), 來(lái)操作相關(guān)數(shù)據(jù)表, 并記錄和查詢信息, 沒(méi)有圖形界面, 是基于控制臺(tái)來(lái)操作的.
項(xiàng)目結(jié)構(gòu)圖:
其中
vo包里面的User類是一個(gè)JavaBean實(shí)體類
view包提供無(wú)限循環(huán)的顯示菜單
util工具包, 包括數(shù)據(jù)類型的轉(zhuǎn)換, 數(shù)據(jù)庫(kù)驅(qū)動(dòng)的連接, 封裝好的鍵盤(pán)錄入操作
driver包: 包含main方法, 是程序的入口, 來(lái)啟動(dòng)項(xiàng)目
dao(data access object)包: 定義操作數(shù)據(jù)庫(kù)數(shù)據(jù)的接口和它的實(shí)現(xiàn)類
相關(guān)代碼:
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("--------人員信息管理系統(tǒng)-------");
System.out.println("1.增加人員");
System.out.println("2.按編號(hào)刪除人員");
System.out.println("3.按編號(hào)修改人員信息");
System.out.println("4.按編號(hào)查詢?nèi)藛T信息");
System.out.println("5.按關(guān)鍵字查詢?nèi)藛T信息");
System.out.println("0.退出");
User user = null;
int i = input.getInt("請(qǐng)選擇:", "請(qǐng)輸入正確的選項(xiàng)!");
switch (i) {
case 1:
int id = input.getInt("請(qǐng)輸入人員編號(hào):", "格式不對(duì),請(qǐng)重新輸入!");
String name = input.getString("請(qǐng)輸入人員姓名:");
String sex = input.getString("請(qǐng)輸入性別:");
java.util.Date birthday = input.getDate("請(qǐng)輸入出生日期:", "格式不對(duì),請(qǐng)重新輸入!");
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("請(qǐng)輸入人員編號(hào):", "格式不對(duì),請(qǐng)重新輸入!");
try {
if (iu.doDelete(id2)) {
System.out.println("刪除成功!");
} else {
System.out.println("刪除失敗!");
}
} catch (Exception e1) {
e1.printStackTrace();
}
break;
case 3:
int id3 = input.getInt("請(qǐng)輸入人員編號(hào):", "格式不對(duì),請(qǐng)重新輸入!");
String name3 = input.getString("請(qǐng)輸入人員姓名:");
String sex3 = input.getString("請(qǐng)輸入性別:");
java.util.Date birthday3 = input.getDate("請(qǐng)輸入出生日期:", "格式不對(duì),請(qǐng)重新輸入!");
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("請(qǐng)輸入人員編號(hào):", "格式不對(duì),請(qǐng)重新輸入!");
try {
user = iu.findById(id4);
System.out.println(user);
} catch (Exception e1) {
e1.printStackTrace();
}
break;
case 5:
String keyword5 = input.getString("請(qǐng)輸入查詢關(guān)鍵字");
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("請(qǐng)選擇正確的操作!");
}
}
}
數(shù)據(jù)庫(kù)操作:
SQL語(yǔ)句:
use `usermanage`;
create table `user`(
id int primary key,
name varchar(25),
sex varchar(5),
birthday date
);
演示結(jié)果:
最后注意:
該項(xiàng)目因?yàn)槟承┰? 是GBK編碼, 所以為了避免亂碼, 需要設(shè)置項(xiàng)目的編碼為GBK, Eclipse的設(shè)置同理. 同時(shí), 里面包含.classpath和.project文件, 也可以直接通過(guò)Eclipse打開(kāi)!
完整代碼:
https://github.com/menglanyingfei/Java/blob/master/CodeCollection/JavaSEProjects/JDBC/JDBC.zip
@Author menglanyingfei
@Created on 2017.11.30