Java项目——模拟电话薄联系人增删改查
该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作。
菜单类: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项目——模拟电话薄联系人增删改查的更多相关文章
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- Java API实现Hadoop文件系统增删改查
Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...
- 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...
- 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...
- ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...
- ssm项目框架搭建(增删改查案例实现)——(SpringMVC+Spring+mybatis项目整合)
Spring 常用注解 内容 一.基本概念 1. Spring 2. SpringMVC 3. MyBatis 二.开发环境搭建 1. 创建 maven 项目 2. SSM整合 2.1 项目结构图 2 ...
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...
- ElasticSearch6(三)-- Java API实现简单的增删改查
基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...
随机推荐
- Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分
安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...
- SQL Server 事务、异常和游标
转自:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110325.html Ø 事务 在数据库中有时候需要把多个步骤的指令当作一个整体来运行,这个整 ...
- JAVA里的异常
一.概念和分类 JAVA程序设计语言中,异常对象都是Throwable类的一个实例.Throwable分为Error和Exception. 其中,Error类层次结构描述了JAVA运行时系统的内部错误 ...
- 使用sklearn优雅地进行数据挖掘
目录 1 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术2 并行处理 2.1 整体并行处理 2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回 ...
- vim指令常用
慢慢尝试使用vim,不断学习使用新的快捷键,将常用快捷键但经常容易忘的写下来, 1. 复制黏贴 命令行模式下按住v选中,y表示复制,d表示剪切,p为复制.
- iOS Developer:真机测试
如果出现ios development一项为灰色不可点击状态,苹果的说法是 如果您要为此电脑添加证书,请revoke以前的证书后添加,或者通过以前的mac导出证书 原文不记得了,大概这个意思,苹果不希 ...
- 小游戏runpig总结
前几天写了一个JavaScript小游戏,大概是这样的 demo:strongfanfan.top/RunPig 源代码:www.github.com/strongfanfan/RunPig 画风简 ...
- android开发中监控android软件网络请求的软件Charles使用入门
1.下载并安状软件,官网在此: http://www.charlesproxy.com/ 2.前题条件,电脑和手机必须在同一网段 3.在Charles界面选择菜单 proxy->proxy se ...
- Linux内核--网络栈实现分析(四)--网络层之IP协议(上)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址 ...
- Android度量单位说明(DIP,DP,PX,SP) (转帖)
(一)概念 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不 ...