该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作。

菜单类:Menu —— 用来封装主菜单和个选项的子菜单

Person类: Person——联系人的实体类

TelNoteRegex类: TelNoteRegex——对姓名、年龄、性别、电话号码、归属地的验证方法

Operate类:Operate——封装业务功能方法

APP类:APP——封装start()-主菜单方法、main()主函数

 package com.hq.tel;
/***
*
* @author Administrator
*界面类
*/
public class Menu {
//主界面
public void mainMenu(){
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("** 6 退出系统 **");
System.out.println("*******************");
System.out.println("请输入正确的数字:最小是 1,最大是 6。");
}
//添加记录菜单
public void addMenu(){
System.out.println("********************");
System.out.println("** 1 添加新记录 **");
System.out.println("** 2 查看全记录 **");
System.out.println("** 3 返回上一级 **");
System.out.println("********************");
System.out.println("请输入正确的数字:最小是 1,最大是 3。");
}
//查找记录菜单
public void serachMenu(){
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("** 6 查看全记录 **");
System.out.println("** 7 返回上一级 **");
System.out.println("********************");
System.out.println("请输入正确的数字:最小是 1,最大是 7。");
}
//修改记录主菜单
public void modifyMenu(){
System.out.println("********************");
System.out.println("** 1 查看全记录 **");
System.out.println("** 2 修改指定记录 **");
System.out.println("** 3 返回上一级 **");
System.out.println("********************");
System.out.println("请输入正确的数字:最小是 1,最大是 3。");
}
//修改记录子菜单
public void subModifyMenu(){
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("** 6 返回上一级 **");
System.out.println("*******************");
System.out.println("请输入正确的数字:最小是 1,最大是 6。");
}
//删除记录菜单
public void deleteMenu(){
System.out.println("********************");
System.out.println("** 1 查看全记录 **");
System.out.println("** 2 删除指定记录 **");
System.out.println("** 3 删除全部记录 **");
System.out.println("** 4 返回上一级 **");
System.out.println("********************");
System.out.println("请输入正确的数字:最小是 1,最大是 4。");
}
//排序记录菜单
public void orderMenu(){
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("********************");
System.out.println("请输入正确的数字:最小是 1,最大是 5。");
}
}
 package com.hq.tel;
/***
*
* @author Administrator
*Person实体类
*/
public class Person {
//属性
private int id; //id号
private String name; //姓名
private int age; //年龄
private String sex; //性别
private String telNUM; //电话号码
private String adress; //住址
//get/set方法
public int getId() { //获取id号
return id;
}
public void setId(int id) { //设置id号
this.id = id;
}
public String getName() { //获取姓名
return name;
}
public void setName(String name) { //设置姓名
this.name = name;
}
public int getAge() { //获取年龄
return age;
}
public void setAge(int age) { //设置年龄
this.age = age;
}
public String getSex() { //获取性别
return sex;
}
public void setSex(String sex) { //设置性别
this.sex = sex;
}
public String getTelNUM() { //获取电话号码
return telNUM;
}
public void setTelNUM(String telNUM) { //设置电话号码
this.telNUM = telNUM;
}
public String getAdress() { //获取地址
return adress;
}
public void setAdress(String adress) { //设置地址
this.adress = adress;
}
//构造方法
public Person(){ //无参构造方法
super();
}
public Person(String name, int age, String sex, String telNUM, String adress) { //含参构造方法
super();
this.name = name;
this.age = age;
this.sex = sex;
this.telNUM = telNUM;
this.adress = adress;
}
//toString 方法
@Override
public String toString() {
return "序号=" + id + ", 姓名 " + name + ", 年龄 " + age + ", 性别 " + sex + ", 电话号码 " + telNUM
+ ", 号码归属地 " + adress + "]";
}
}
 package com.hq.tel;
/**
*
* @author Administrator
*用户输入检查类
*/
public class TelNoteRegex {
//对菜单输入项验证
public boolean menuRegex(int max,int min,int shuru){
boolean falg = false;
if(shuru<max && shuru>=min){
falg = true;
}else{
falg = false;
}
return falg;
}
//对用户输入姓名验证
public boolean nameRegex(String name){
boolean falg = false;
if(name.matches("^[a-zA-Z]+$")){
falg = true;
}else{
falg = false;
}
return falg;
}
//对用户输入年龄的验证
public boolean ageRegex(int age){
boolean falg = false;
if(age>0 && age<=100){
falg = true;
}else{
falg = false;
}
return falg;
}
//对用户输入性别的验证
public boolean sexRegex(String sex){
boolean falg = false;
if(sex.equals("男") || sex.equals("m") || sex.equals("M") || sex.equals("女") || sex.equals("f") || sex.equals("F")){
falg = true;
}else{
falg = false;
}
return falg;
}
//对用户输入电话号码的验证
public boolean telNumRegex(String telNum){
boolean falg = false;
if(telNum.matches("^([0-9]{7})?$") || telNum.matches("^([0-9]{11})?$")){
falg = true;
}else{
falg = false;
}
return falg;
}
//对用户输入地址的验证
public boolean addressRegex(String adress){
boolean falg = false;
if(adress.matches("^[\u4E00-\u9FA5]+$") || adress.matches("^[A-Za-z]+$")){
falg = true;
}else{
falg = false;
}
return falg;
}
}
 package com.hq.tel;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; import com.mchange.v2.c3p0.ComboPooledDataSource; /**
*
* @author Administrator
*业务逻辑类
*/
public class Operate {
private List<Person> list = new ArrayList<Person>(); //Person 类型集合
private Connection conn = null; //定义连接
private PreparedStatement ps = null; //定义声明
private ResultSet rs = null; //定义结果集
//创建连接池
ComboPooledDataSource cp = new ComboPooledDataSource("helloc3p0");
//连接数据库
public Connection getConnectionByJDBC() {
try {
conn = cp.getConnection();
} catch (SQLException e) {
System.out.println("数据库连接异常!");
e.printStackTrace();
}
return conn;
}
//输入姓名
@SuppressWarnings("resource")
public String scName(){
String name = null;
while(true){
System.out.println("请输入姓名,1-20位字母:");
Scanner sc = new Scanner(System.in);
try{
String shuru = sc.nextLine();
if(new TelNoteRegex().nameRegex(shuru)){ //检查姓名
name = shuru;
return name;
}else{
System.out.println("姓名检查未通过!");
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
continue;
}
}
}
//输入年龄
@SuppressWarnings("resource")
public int scAge(){
int age = 0;
while(true){
try{
System.out.println("请输入年龄,1-100+");
Scanner sc = new Scanner(System.in);
int shuru = sc.nextInt();
if(new TelNoteRegex().ageRegex(shuru)){
age = shuru;
return age;
}else{
System.out.println("年龄检查未通过!");
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
continue;
}
}
}
//输入性别
@SuppressWarnings("resource")
public String scSex(){
String sex =null;
while(true){
System.out.println("请输入性别,(男 m or M) (女 f or F):");
Scanner sc = new Scanner(System.in);
try{
String shuru = sc.nextLine();
if(new TelNoteRegex().sexRegex(shuru)){
sex = shuru;
return sex;
}else{
System.out.println("性别检查未通过!");
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
continue;
}
}
}
//输入电话号码
@SuppressWarnings("resource")
public String scTelnum(){
String telNum =null;
while(true){
System.out.println("请输入电话号码,11位数字:");
Scanner sc = new Scanner(System.in);
try{
String shuru = sc.nextLine();
if(new TelNoteRegex().telNumRegex(shuru)){
telNum = shuru;
return telNum;
}else{
System.out.println("电话号码检查未通过!");
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
continue;
}
}
}
//输入电话所属地址
@SuppressWarnings("resource")
public String scAdress(){
String adress =null;
while(true){
System.out.println("请输入电话所属地,字母或汉字:");
Scanner sc = new Scanner(System.in);
try{
String shuru = sc.nextLine();
if(new TelNoteRegex().addressRegex(shuru)){
adress = shuru;
return adress;
}else{
System.out.println("所属地址检查未通过!");
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
} }
//输入id号
@SuppressWarnings("resource")
public int scid(){
int id = 0;
while(true){
System.out.println("请输入您要修改的id号:");
Scanner sc = new Scanner(System.in);
try{
id = sc.nextInt();
return id;
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
}
//用户添加信息业务逻辑控制
public void addLogic(int i){
switch(i){
case 1: //添加新纪录功能
String name = scName(); //接收姓名
int age = scAge(); //接收年龄
String sex = scSex(); //接收性别
String telnum = scTelnum(); //接收电话号码
String adress = scAdress(); //接收归属地
addOperation(name,age,sex,telnum,adress); //调用添加记录方法,进行传值
break;
case 2: //查询全记录功能
for(Person temp : showAll()){ //遍历结果集
System.out.println(temp);
}
break;
//返回上一级
case 3:
break;
default :
System.out.println("选择错误!");
break;
}
}
//添加新用户信息
public void addOperation(String name,int age,String sex,String telNum,String adress){
String sql = "insert into t_telphone values(tel.nextval,?,?,?,?,?)"; //SQL语句
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql); //预编辑SQL语句
ps.setString(1, name); //替换通配符
ps.setInt(2, age);
ps.setString(3, sex);
ps.setString(4, telNum);
ps.setString(5, adress);
ps.executeUpdate(); //运行SQL语句
System.out.println("添加联系人成功!");
} catch (SQLException e) {
System.out.println("电话号码已存在,联系人添加失败!");
} finally{
try {
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//查询全记录
public List<Person> showAll(){
String sql = "select * from t_telphone";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql); //预编译
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//用户查找信息业务逻辑控制
public void searchLogic(int i){
switch(i){
case 1: //按姓名查找
String name = scName();
for(Person temp:searchByName(name)){
System.out.println(temp);
}
break;
case 2: //按年龄查找
int age = scAge();
for(Person temp:searchByAge(age)){
System.out.println(temp);
}
break;
case 3:
String sex = scSex(); //按性别查找
for(Person temp:searchBySex(sex)){
System.out.println(temp);
}
break;
case 4: //按号码查找
String telNum = scTelnum();
searchByTelNum(telNum);
break;
case 5: //按地址查找
String address = scAdress();
for(Person temp:searchByAdd(address)){
System.out.println(temp);
}
break;
case 6: //查询全纪录
for(Person temp : showAll()){
System.out.println(temp);
}
case 7:
break;
default :
System.out.println("输入错误!");
break;
} }
//按姓名查询用户信息
public List<Person> searchByName(String name){
String sql = "select * from t_telphone where name = ?";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//按年龄查询用户信息
public List<Person> searchByAge(int age){
String sql = "select * from t_telphone where age = ?";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
ps.setInt(1, age);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//按性别查询用户信息
public List<Person> searchBySex(String sex){
String sqlm = "select * from t_telphone where sex = '男' or sex = 'm' or sex = 'M'"; //查询“男”
String sqlf = "select * from t_telphone where sex = '女' or sex = 'f' or sex = 'F'"; //查询“女”
getConnectionByJDBC(); //连接数据库
if(sex.equals("男") || sex.equals("m") || sex.equals("M")){
try {
ps = conn.prepareStatement(sqlm);
rs = ps.executeQuery();
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}else if(sex.equals("女") || sex.equals("f") || sex.equals("F")){
try {
ps = conn.prepareStatement(sqlf);
rs = ps.executeQuery();
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}else{
System.out.println("性别输入错误!");
}
return list; }
//按电话号码查询
public void searchByTelNum(String telNum){
String sql = "select * from t_telphone where TELNUM = ?";
getConnectionByJDBC(); //连接数据库
try {
ps = conn.prepareStatement(sql);
ps.setString(1, telNum);
rs = ps.executeQuery();
if(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
System.out.println(p);
}else{
System.out.println("您输入的号码不存在!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//按地址查询用户信息
public List<Person> searchByAdd(String address){
String sql = "select * from t_telphone where address = ?";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
ps.setString(1, address);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//修改记录业务逻辑控制
@SuppressWarnings("resource")
public void modifyLogicLogic(int i) {
switch (i) {
// 查看全记录
case 1:
for (Person temp : showAll()) {
System.out.println(temp);
}
break;
// 修改指定记录
case 2:
int id = scid();
while(true){
new Menu().subModifyMenu();
try {
Scanner sc = new Scanner(System.in);
int xZe = sc.nextInt();
System.out.println(xZe);
if (new TelNoteRegex().menuRegex(6, 1, xZe)) {
modifyLoginLogic(xZe, id);
continue;
}else if (xZe == 6) {
break;
} else {
System.out.println("输入有误!");
}
} catch (Exception e) {
System.out.println("选择错误hahaha!");
e.printStackTrace();
}
}
break;
// 返回上一层
case 3:
break;
default:
System.out.println("选择错误!");
break;
}
}
//修改指定记录业务逻辑控制
public void modifyLoginLogic(int i,int id){
switch(i){
//修改姓名
case 1:
String name = scName();
modifyName(name,id);
break;
//修改年龄
case 2:
int age = scAge();
modifyAge(age,id);
break;
//修改性别
case 3:
String sex = scSex();
modifySex(sex,id);
break;
//修改电话号码
case 4:
String telNum = scTelnum();
modifyTelnum(telNum,id);
break;
//修改地址
case 5:
String address = scAdress();
modifyAddress(address,id);
break;
//返回上一级
case 6:
break;
default :
System.out.println("选择错误!");
break;
}
}
//修改姓名
public void modifyName(String name,int id){
String sql = "update t_telphone set name = ? where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, id);
if(ps.executeUpdate()==1){
System.out.println("修改姓名成功!");
}else{
System.out.println("修改姓名失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//修改年龄
public void modifyAge(int age,int id){
String sql = "update t_telphone set age = ? where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, age);
ps.setInt(2, id);
if(ps.executeUpdate()==1){
System.out.println("修改年龄成功!");
}else{
System.out.println("修改年龄失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//修改性别
public void modifySex(String sex,int id){
String sql = "update t_telphone set sex = ? where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, sex);
ps.setInt(2, id);
if(ps.executeUpdate()==1){
System.out.println("修改性别成功!");
}else{
System.out.println("修改性别失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//修改电话号码
public void modifyTelnum(String telNum,int id){
String sql = "update t_telphone set telNum = ? where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, telNum);
ps.setInt(2, id);
if(ps.executeUpdate()==1){
System.out.println("修改电话号码成功!");
}else{
System.out.println("修改电话号码失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//修改地址
public void modifyAddress(String address,int id){
String sql = "update t_telphone set address = ? where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, address);
ps.setInt(2, id);
if(ps.executeUpdate()==1){
System.out.println("修改归属地成功!");
}else{
System.out.println("修改归属地失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//删除信息业务逻辑控制
public void deleteLogic(int i){
switch(i){
//查看全记录
case 1:
for(Person temp:showAll())System.out.println(temp);
break;
//删除指定记录
case 2:
int id = scid();
delete(id);
break;
//删除全部记录
case 3:
deleteAll();
break;
//返回上一级
case 4:
break;
default :
System.out.println("选择错误!");
}
}
//删除指定记录
public void delete(int id){
String sql = "Delete t_telPhone where id = ?";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
if(ps.executeUpdate()==1){
System.out.println("删除联系人成功!");
}else{
System.out.println("删除联系人失败!");
}
} catch (SQLException e) {
e.printStackTrace();
} }
//删除全部记录
public void deleteAll(){
String sql = "truncate table t_telPhone";
getConnectionByJDBC();
try {
ps = conn.prepareStatement(sql);
ps.executeUpdate();
System.out.println("删除全部联系人成功!");
} catch (SQLException e) {
e.printStackTrace();
}
}
//排序业务逻辑控制
public void orderLogic(int i){
switch(i){
//按姓名排序
case 1:
for(Person temp:orderName())System.out.println(temp);
break;
//按年龄排序
case 2:
for(Person temp:orderAge())System.out.println(temp);
break;
//按性别排序
case 3:
for(Person temp:orderSex())System.out.println(temp);
break;
//查询全记录
case 4:
for(Person temp:showAll())System.out.println(temp);
break;
//返回上一层
case 5:
break;
default:
System.out.println("选择错误!");
}
}
//按姓名排序
public List<Person> orderName(){
String sql = "select * from t_telphone order by name";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//按年龄排序
public List<Person> orderAge(){
String sql = "select * from t_telphone order by age";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
//按用户性别排序
public List<Person> orderSex(){
String sql = "select * from t_telphone order by sex";
try {
getConnectionByJDBC(); //连接数据库
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); //执行SQL语句
while(rs.next()){
Person p = new Person();
p.setId(rs.getInt("ID"));
p.setName(rs.getString("NAME"));
p.setAge(rs.getInt("AGE"));
p.setSex(rs.getString("SEX"));
p.setTelNUM(rs.getString("TELNUM"));
p.setAdress(rs.getString("ADDRESS"));
list.add(p); //获取信息,将信息写入集合
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
rs.close(); //关闭结果集
ps.close(); //关闭声明
conn.close(); //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
}
 package com.hq.tel;

 import java.util.Scanner;

 public class App {
//主菜单控制
@SuppressWarnings({ "resource" })
public static int start(){
int xZe = 0;
while(true){
new Menu().mainMenu();
Scanner sc = new Scanner(System.in);
try{
int shuru = sc.nextInt();
if(new TelNoteRegex().menuRegex(7,1,shuru)){
xZe = shuru;
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
}
}
return xZe;
} @SuppressWarnings("resource")
public static void main(String[] args) {
while(true){
int i = start();
switch (i) { // 运行主界面,并进行选择
// 1 添加记录
case 1:
while(true){
new Menu().addMenu(); //调添加记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try {
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(3, 1, shuru)){ //判断选项合法性
new Operate().addLogic(shuru); //调用添加用户业务逻辑控制
continue;
}else if(shuru == 3){
break;
}else{
continue;
}
} catch (Exception e) {
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
// 2 查找记录
case 2:
while(true){
new Menu().serachMenu(); //调用查找记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(7, 1, shuru)){ //判断选项合法性
new Operate().searchLogic(shuru); //调用查找用户信息逻辑
continue;
}else if(shuru == 7){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
//修改记录
case 3:
while(true){
new Menu().modifyMenu(); //调用修改记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(3, 1, shuru)){ //判断选项合法性
new Operate().modifyLogicLogic(shuru); //调用修改用户信息逻辑
continue;
}else if(shuru == 3){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
//删除记录
case 4:
while(true){
new Menu().deleteMenu(); //调用删除记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(4, 1, shuru)){ //判断选项合法性
new Operate().deleteLogic(shuru); //调用删除用户信息逻辑
continue;
}else if(shuru==4){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
//排序信息
case 5:
while(true){
new Menu().orderMenu(); //调用排序信息子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(5, 1, shuru)){ //判断选项合法性
new Operate().orderLogic(shuru);
continue;
}else if(shuru==5){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
case 6: //退出系统
break;
}
if(i==6){
break;
}
}
}
}

 

Java项目——模拟电话薄联系人增删改查的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  3. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  4. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

  5. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

  6. ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...

  7. ssm项目框架搭建(增删改查案例实现)——(SpringMVC+Spring+mybatis项目整合)

    Spring 常用注解 内容 一.基本概念 1. Spring 2. SpringMVC 3. MyBatis 二.开发环境搭建 1. 创建 maven 项目 2. SSM整合 2.1 项目结构图 2 ...

  8. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  9. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

随机推荐

  1. python中文编码

    前面章节中我们已经学会了如何用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题 ...

  2. Debian使用相关

    1)将普通用户添加到sudo组 首先安装sudo: root@~#: apt-get install sudo 然后添加将wzc用户添加到sudo组: root@~#: usermod -a -G s ...

  3. Traceroute命令原理(转)

    Traceroute命令基本功能 该命令用于测试两个TCP/IP系统之间的网络层连通性和显示传输路径中每一跳地址,又称为路径跟踪,如果Traceroute命令测试成功,我们能够观察到从源主机到目的主机 ...

  4. col-md-*,col-xs-*

    class属性 col-md-*,md 表示 medium (中等的),* 代表一个数字,它指定了这个元素所占的列宽. 在中等大小的屏幕上(例如笔记本电脑),元素的列宽被指定了. col-xs-* , ...

  5. python基础整理笔记(六)

    一. 关于hashlib模块的一些注意点 hashlib模块用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512, MD ...

  6. berkeley db中 dirty read的实现

    dirty reader怎样 不被writor block住? 如数据库支持dirty read, 则 所有打开的dbhandle都配置 DB_READ_UNCOMMITTED; 在线程拿到 writ ...

  7. OSD磁盘日常监控

    摘要:对ceph OSD磁盘,做好定期的性能数据采集和通电时长管理,长期的数据积累对磁盘的性能与生命周期管理会有一定帮助,同时也能确保整个集群性能的稳定. 磁盘碎片管理 查看磁盘碎片 # xfs_db ...

  8. 普通用户使用dbms_xplan包需要有的权限

    普通用户使用dbms_xplan包查看执行计划需要对v$sql.v$sql_plan.v$session及v$sql_plan_statistics_all这四个视图同时具有select权限. 如果普 ...

  9. 开始VS 2012 中LightSwitch系列的第1部分:表中有什么?描述你的数据

    [原文发表地址]  Beginning LightSwitch in VS 2012 Part 1: What’s in a Table? Describing Your Data [原文发表时间]  ...

  10. 《JAVA与模式》之抽象工厂模式

    场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU.硬盘.内存.主板.电源.机箱等.为讨论使用简单点,只考虑选择CPU和主板的问题. 事实上,在选择 ...