项目练习--自制电话铺功能

3类名,方法名及变量名的定义

要遵循下列设计要求进行代码编写,仅允许细微调整。

3.1类名:

App  对应  Application(程序入口函数)

Menu 对应  Menu      (菜单类)

Operate 对应  Operate    (业务处理类)

Person 对应  Person (实体类)

 

3.2方法名:

App类中方法(无成员变量):

main() 程序入口函数

start() 主菜单控制

 

Operate类中方法及成员变量

private List<Person>list 集合

 

addLogic() 用户添加信息业务逻辑控制

searchLogic() 用户查询信息业务逻辑控制

modifyLogicLogic() 修改信息业务逻辑控制

deleteLogic() 删除信息业务逻辑控制

orderLogic() 排序信息业务逻辑控制

addOperation () 添加新用户信息

showAll() 查询全部用户信息

searchByName() 按姓名查询用户信息

searchByAge() 按年龄查询用户信息

searchBySex() 按性别查询用户信息

searchByTelNum() 按电话号码查询用户信息

searchByAdd() 按地址查询用户信息

modify() 修改指定记录信息

delete() 删除指定用户信息

deleteAll() 删除全部用户信息

orderName() 按用户姓名排序信息

orderAge() 按用户年龄排序信息

orderSex() 按用户性别排序信息

 

TelNoteRegex类中方法(无成员变量)

menuRegex (int min, int max ) 对菜单输入选项的验证

nameRegex ( ) 对用户输入姓名的验证

ageRegex ( ) 对用户输入年龄的验证

sexRegex ( ) 对用户输入性别的验证

telNumRegex ( ) 对用户输入电话号码的验证

addressRegex ( ) 对用户输入地址的验证

 

Menu类中的方法(无成员变量)

mainMenu() 主菜单

addMenu () 添加用户菜单

searchMenu () 查找用户菜单

modifyMenu () 修改用户信息主菜单

subModifyMenu () 修改用户信息子菜单

deleteMenu () 删除用户信息菜单

orderMenu () 排序用户信息菜单

 

Person类中的方法及成员变量

private int id; 用户ID 属性

private String name; 用户姓名属性

private String age; 用户年龄属性

private String sex; 用户性别属性

private String telNum; 用户电话号码属性

private String address; 用户地址属性

Person() 无参数构造方法

Person(String name, String age, String sex, String telNum, String address) 有参数构造方法

getName() 读取用户名

setName(String name) 设置用户名

getAge() 读取用户年龄

setAge(String age) 设置用户年龄

getSex() 读取用户性别

setSex(String sex) 设置用户性别

getTelNum() 读取用户电话号码

setTelNum (String telNum) 设置用户电话号码

getAddress() 读取用户地址

setAddress(String address) 设置用户地址

getID () 读取用户ID号

setID (int ID) 设置用户ID号

toString() 连接字符串方法

包1:com.telephone

类名1:Menu 菜单类

复制代码
package com.telephone;

import java.util.Scanner;

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("*********************");
    
        
    }
    //添加用户菜单
    public void addMenu() 
    
    {
        System.out.println("*********************");
        System.out.println("**    1.添加新记录        **");
        System.out.println("**    2.查看全记录        **");
        System.out.println("**    3.返回上一级        **");
        System.out.println("*********************");
        
    }
    //查找记录菜单
    public void searchMenu()
    {
        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("*********************");
    }
    //修改用户信息主菜单
    public void modifyMenu()
    {

        System.out.println("*********************");
        System.out.println("**    1.查看全纪录        **");
        System.out.println("**    2.修改指定记录    **");
        System.out.println("**    3.返回上一级        **");
        System.out.println("*********************");
        
    }
    //修改用户信息子菜单
    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("*********************");
    }

    //删除用户信息菜单
    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("*********************");
        
    }
    //排序用户信息菜单
    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("*********************");
    }
}
复制代码

类名2:Person 实体类

复制代码
package com.telephone;

public class Person {
    
    //定义实体类Person
    //对应数据库字段设置属性
    private int tb_id;
    private String tb_name;
    private int tb_age;
    private String tb_sex;
    private String tb_telnum;
    private String tb_address;
    //生成get,set方法
    public int getTb_id() {
        return tb_id;
    }
    public void setTb_id(int tb_id) {
        this.tb_id = tb_id;
    }
    public String getTb_name() {
        return tb_name;
    }
    public void setTb_name(String tb_name) {
        this.tb_name = tb_name;
    }
    public int getTb_age() {
        return tb_age;
    }
    public void setTb_age(int tb_age) {
        this.tb_age = tb_age;
    }
    public String getTb_sex() {
        return tb_sex;
    }
    public void setTb_sex(String tb_sex) {
        this.tb_sex = tb_sex;
    }
    public String getTb_telnum() {
        return tb_telnum;
    }
    public void setTb_telnum(String tb_telnum) {
        this.tb_telnum = tb_telnum;
    }
    public String getTb_address() {
        return tb_address;
    }
    public void setTb_address(String tb_address) {
        this.tb_address = tb_address;
    }
    //生成有参数构造方法
    public Person(String tb_name, int tb_age, String tb_sex, String tb_telnum, String tb_address) {
        super();
        this.tb_name = tb_name;
        this.tb_age = tb_age;
        this.tb_sex = tb_sex;
        this.tb_telnum = tb_telnum;
        this.tb_address = tb_address;
    }
    //生成无参数构造方法
    public Person() {
        super();
    }
    //生成toString方法
    @Override
    public String toString() {
        return "姓名 " + tb_name + ",  年龄 " + tb_age + ",  性别 " + tb_sex + ",  电话 " + tb_telnum
                + ",  地址 " + tb_address + "";
    }
    
}
复制代码

包2 com.fangfa

类1:Operate 方法类

复制代码
package com.fangfa;

import java.sql.Connection;
import java.sql.ParameterMetaData;
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;
import com.telephone.Menu;
import com.telephone.Person;

public class Operate {
    
    
    List<Person> li=new ArrayList<>();
    Person ps=new Person();
    TelNoteRegex tr=new TelNoteRegex();
    ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");
    Connection conn=null;
    PreparedStatement pm=null;
    ResultSet rs=null;
    Menu me=new Menu();

    
    
    //用户添加信息业务逻辑控制
    public void addLogic() 

    {
        Operate op=new Operate();
        while(true)
        {
            me.addMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:3");
            int am=sa.nextInt();
            if(tr.menuRegex(1, 2, am))
            {
                switch (am) {
                case 1:
                    op.addOperation();
                    break;
                case 2:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;

                default:
                
                    break;
                }
                
            }
            else if(am==3)
            {
                break;
            }
            
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }
            
        }
    }
    //用户查询信息业务逻辑控制
    //用户查询信息业务逻辑控制
    public void searchLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.searchMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:7");
            int sm=sa.nextInt();
            if(tr.menuRegex(1, 6, sm))
            {
                switch (sm) {
                case 1:
                    Person ps=op.searchByName();
                    System.out.println(ps);
                    break;
                case 2:
                    li=op.searchByAge();
                    for(Person ps1:li)
                    {
                        System.out.println(ps1);
                    }
                    break;
                case 3:
                    li=op.searchBySex();
                    for(Person ps2:li)
                    {
                        System.out.println(ps2);
                    }
                    
                    break;
                case 4:
                    Person ps3=op.searchByTelNum();
                    System.out.println(ps3);

                    break;
                case 5:
                    li=op.searchByAdd();
                    for(Person ps4:li)
                    {
                        System.out.println(ps4);
                    }

                    break;
                case 6:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    
                    break;

                default:
                    break;
                    
                }
            }
            else if(sm==7)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }
            
        }
    }
    //修改信息业务逻辑控制
    //修改信息业务逻辑控制
    public void modifyLogicLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.modifyMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:3");
            int mf=sa.nextInt();
            if(tr.menuRegex(1, 2, mf))
            {
                switch (mf) {
                case 1:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    continue;
                case 2:
                    while(true)
                    {
                        me.subModifyMenu();;
                        Scanner sn=new Scanner(System.in);
                        System.out.println("请输入正确数字,最小是:1 最大是:6");
                        int sf=sa.nextInt();
                        if(tr.menuRegex(1, 5, sf))
                        {
                            switch (sf) {
                            case 1:
                                op.modifyName();
                                break;
                            case 2:
                                op.modifyAge();
                                
                                break;
                            case 3:
                                op.modifysex();
                                
                                break;
                            case 4:
                                op.modifytelnum();
    
                                break;
                            case 5:
                                op.modifyAdd();
    
                                break;

                            default:
                                
                                break;
                            }
                            
                        }
                        else if(sf==6)
                        {
                            break;
                        }
                        else
                        {
                            System.out.println("你选择的菜单不存在,请重新选择:");
                        }
                    }
                    break;    
                default:
                    
                    break;
                }
                
            }
            else if(mf==3)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }
            
        }
    }
    //删除信息业务逻辑控制
    //删除信息业务逻辑控制
    public void deleteLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.deleteMenu();;
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:4");
            int dm=sa.nextInt();
            if(tr.menuRegex(1, 3, dm))
            {
                switch (dm) {
                case 1:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;
                case 2:
                    op.delete();
                    break;
                case 3:
                    op.deleteAll();
                    break;

                default:
                    
                    break;
                }
                
            }
            else if(dm==4)
            {
                break;
            }
            
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }
            
        }
    }
    //排序信息业务逻辑控制
    //排序信息业务逻辑控制
    public void orderLogic()  
    {
        Operate op=new Operate();
        while(true)
        {
            me.orderMenu();;
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:5");
            int om=sa.nextInt();
            if(tr.menuRegex(1, 4, om))
            {
                switch (om) {
                case 1:
                    
                    li=op.orderName();
                    for(Person ps:li)
                    {
                        System.out.println(ps);
                    }
                    break;
                case 2:
                    
                    li=op.orderAge();
                    for(Person ps1:li)
                    {
                        System.out.println(ps1);
                    }
                    break;
                case 3:
                    
                    li=op.orderSex();
                    for(Person ps2:li)
                    {
                        System.out.println(ps2);
                    }
                    break;
                case 4:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;

                default:
                    
                    break;
                }
                
            }
            else if(om==5)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }
            
        }
    }

    //添加新用户信息
    //添加新用户信息
    public void addOperation ()
    {
        //输入姓名
        while(true)
        {
            try {
                Scanner sc=new Scanner(System.in);
                System.out.println("输入姓名:1-10位字母");
                String st=sc.nextLine();
                if(tr.nameRegex(st))
                {
                    ps.setTb_name(st);
                    break;
                }
                else
                {
                    System.out.println("姓名输入不规范,重新输入:");
                }
                
            
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
            //输入年龄
        while(true)
        {
            Scanner sc1=new Scanner(System.in);
            System.out.println("输入年龄:1-100+");
            int st1=sc1.nextInt();
            if(tr.ageRegex(st1))
            {
                ps.setTb_age(st1);
                break;
                
            }
            else 
            {
                System.out.println("年龄输入有误,");
            }
            
        }
        //输入性别
        while(true)
        {
            Scanner sc2=new Scanner(System.in);
            System.out.println("输入性别:男或者女");
            String st2=sc2.nextLine();
            if(tr.sexRegex(st2))
            {
                ps.setTb_sex(st2);
                break;
            }
            else
            {
                System.out.println("性别输入无效,重新输入");
            }
            
        }
        //输入电话号码
        while(true)
        {
            Scanner sc3=new Scanner(System.in);
            System.out.println("输入电话号码:");
            String st3=sc3.nextLine();
            
            if(tr.telNumRegex(st3))
            {
                ps.setTb_telnum(st3);
                break;
            }
            else
            {
                System.out.println("电话号码输入有误,重新输入");
            }
            
        }
        //输入地址
        while(true)
        {
            Scanner sc4=new Scanner(System.in);
            System.out.println("输入住址:1-50位字母或数字");
            String st4=sc4.nextLine();
            
            if(tr.addressRegex(st4))
            {
                ps.setTb_address(st4);
                break;
            }
            else
            {
                System.out.println("地址输入错误,重新输入");
            }
            
        }
        //导入数据库
        try {
            
            conn=cp.getConnection();
            String sql="insert into book values (tb_test.nextval,?,?,?,?,?)";
            pm=conn.prepareStatement(sql);
            
            pm.setString(1,ps.getTb_name() );
            pm.setInt(2, ps.getTb_age());
            pm.setString(3, ps.getTb_sex());
            pm.setString(4, ps.getTb_telnum());
            pm.setString(5, ps.getTb_address());
            
            pm.executeUpdate();
            
            pm.close();
            conn.close();
            
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
    }

    //查询全部用户信息
    public List<Person> showAll()
    {
        li=new ArrayList<>();
        try {
            conn=cp.getConnection();
            String sql="select * from book";
            pm=conn.prepareStatement(sql);
            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));
                
                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    
        return li;
    }
    //按姓名查询用户信息
    public Person searchByName()
    {
        li=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        System.out.println("输入姓名:1-10位字母");
        String st=sc.nextLine();
        try {
            if(tr.nameRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_name= ?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                rs=pm.executeQuery();
                
                if(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));
                    
                    rs.close();
                    pm.close();
                    conn.close();
                }
                else
                {
                    System.out.println("输入的姓名不存在");
                }
            }
            else
            {
                System.out.println("输入姓名无效");
            }
            
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return ps;
    }    
    //按年龄查询用户信息
    public List<Person> searchByAge() 
    {
        li=new ArrayList<>();
        try {
            
            Scanner sc=new Scanner(System.in);
            System.out.println("输入年龄:1-100+");
            int st=sc.nextInt();
            if(tr.ageRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_age=?";
                pm=conn.prepareStatement(sql);
                pm.setInt(1, st);
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));
                    
                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            }
            else
            {
                System.out.println("年龄输入有误");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    
        return li;
    }
    //按性别查询用户信息
    public List<Person> searchBySex()
    {
        li=new ArrayList<>();
        try {
            
            Scanner sc=new Scanner(System.in);
            System.out.println("输入性别:男或女");
            String st=sc.nextLine();
            if(tr.sexRegex(st))
            {
            conn=cp.getConnection();
            String sql="select * from book where tb_sex=?";
            pm=conn.prepareStatement(sql);
            pm.setString(1, st);
            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));
                
                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();
            }
            else
            {
                System.out.println("输入姓别无效");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    
        return li;
    }
    //按电话号码查询用户信息
    public Person searchByTelNum()
    {
        li=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        System.out.println("输入电话号码:");
        String st=sc.nextLine();
        
        try {
                if(tr.telNumRegex(st))
                {
                    conn=cp.getConnection();
                    String sql="select * from book where tb_telnum=?";
                    pm=conn.prepareStatement(sql);
                    pm.setString(1, st);
                    rs=pm.executeQuery();
                    if(rs.next())
                    {
                        ps=new Person();
                        ps.setTb_name(rs.getString("tb_name"));
                        ps.setTb_age(rs.getInt("tb_age"));
                        ps.setTb_sex(rs.getString("tb_sex"));
                        ps.setTb_telnum(rs.getString("tb_telnum"));
                        ps.setTb_address(rs.getString("tb_address"));
                        
                        rs.close();
                        pm.close();
                        conn.close();
                
                    
                    }
                    else
                    {
                        System.out.println("输入的电话不存在");
                    }
                }
                else
                {
                    System.out.println("输入电话无效");
                }
            
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return ps;
    }
    //按地址查询用户信息
    public List<Person> searchByAdd()
    {
        li=new ArrayList<>();
        try {
            
            Scanner sc=new Scanner(System.in);
            System.out.println("输入地址:1-50位字母");
            String st=sc.nextLine();
            if(tr.sexRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_address=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));
                    
                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            }
            else
            {
                System.out.println("输入地址无效");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    
        return li;
    }
    //修改姓名记录信息
    public void modifyName() 
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的姓名");
        String st=sc.nextLine();
        if(tr.nameRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_name=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);
                
                pm.executeUpdate();
                
                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("姓名输入错误");
        }
        
    }
    //修改年龄记录信息
    public void modifyAge()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的年龄");
        int st=sc.nextInt();
        if(tr.ageRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_age=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setInt(1, st);
                pm.setInt(2, i);
                
                pm.executeUpdate();
                
                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("年龄输出错误");
        }
    }
    //修改性别记录信息
    public void modifysex()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的姓别");
        String st=sc.nextLine();
        if(tr.sexRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_sex=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);
                
                pm.executeUpdate();
                
                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("性别输入错误");
        }
    }
    //修改号码记录信息
    public void modifytelnum()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的号码");
        String st=sc.nextLine();
        if(tr.telNumRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_telnum=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);
                
                pm.executeUpdate();
                
                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("号码输入格式不正确");
        }
    }
    //修改地址记录信息
    @SuppressWarnings("resource")
    public void modifyAdd()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的地址");
        String st=sc.nextLine();
        if(tr.addressRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_address=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);
                
                pm.executeUpdate();
                
                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("地址输入格式错误");
        }
    }
    //删除指定用户信息
    @SuppressWarnings("resource")
    public void delete()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要删除的ID号");
        int i=sc.nextInt();
        try {
            conn=cp.getConnection();
            String sql="delete from book where tb_id=? ";
            pm=conn.prepareStatement(sql);
            pm.setInt(1, i);
            
            pm.executeUpdate();
            
            pm.close();
            conn.close();
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
        
    }
    //删除全部用户信息
    public void deleteAll()
    {
        try {
            conn=cp.getConnection();
            String sql="truncate table book";
            pm=conn.prepareStatement(sql);
            
            pm.executeUpdate();
            
            pm.close();
            conn.close();
        } catch (SQLException e) {
            
            e.printStackTrace();
        }
    }
    //按用户姓名排序信息
    public List<Person> orderName()
    {
        li=new ArrayList<>();
        try {
                conn=cp.getConnection();
                String sql="select * from book order by tb_name";
                pm=conn.prepareStatement(sql);
                
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));
                    
                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        
            return li;

    }
    //按用户年龄排序信息
    public List<Person> orderAge()
    {
        li=new ArrayList<>();
        try {
            conn=cp.getConnection();
            String sql="select * from book order by tb_age";
            pm=conn.prepareStatement(sql);
            
            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));
                
                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();
        
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    return li;
    }
    //按用户性别排序信息
    public List<Person> orderSex()
    {
        li=new ArrayList<>();
        try {
                conn=cp.getConnection();
                String sql="select * from book order by tb_sex";
                pm=conn.prepareStatement(sql);
                
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));
                    
                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        
            return li;
    }
}
复制代码

类2 TelNoteRegex 验证类

复制代码
package com.fangfa;

import java.util.Scanner;

import com.telephone.Person;

public class TelNoteRegex {
    
    Person ps=new Person();
    
    //对菜单输入选项的验证
    public boolean menuRegex (int min, int max ,int can)
    {
        boolean boo=false;
        if(min<=can&&can<=max)
        {
             boo=true;
        }
        else
        {
            
             boo=false;
        }
        return boo;
        
    }
    //对用户输入姓名的验证
    public boolean nameRegex (String st )
    {
        boolean boo=false;
        String regex="[a-zA-Z]{3,10}";
        //判断姓名规范性
        if(st.matches(regex))
        {
            
            boo=true;
            
        }
        else
        {
            
            boo=false;
        }
        return boo;
    }

    //对用户输入年龄的验证
    public boolean ageRegex (int st1 ) 
    {
        boolean boo=false;
        if(st1>0&&st1<=100)
        {
            boo=true;
        }
        else 
        {
            boo=false;
        }
        return boo;
    }
    
    //对用户输入性别的验证
    public boolean sexRegex (String st2 )
    {
        boolean boo=false;
        if(st2.equals("男")||st2.equals("女"))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
    //对用户输入电话号码的验证
    public boolean telNumRegex (String st3 ) 
    {
        boolean boo=false;
        String regex="^1[0-9]{10}$";
        if(st3.matches(regex))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
    //对用户输入地址的验证
    public boolean addressRegex (String st4 )
    {
        boolean boo=false;
        String regex="[a-zA-Z]{1,50}";
        if(st4.matches(regex))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
}
复制代码

包3:testtelnum

类1:App 测试类

复制代码
package com.testtelnum;

import java.util.Scanner;

import com.fangfa.Operate;
import com.fangfa.TelNoteRegex;
import com.telephone.Menu;

public class APP {
    
    public static int start()
    {
        Menu me=new Menu();
        TelNoteRegex tr=new TelNoteRegex();
        int i=0;
        me.mainMenu();
        System.out.println("请输入正确数字,最小是:1 最大是:6");
        Scanner sc=new Scanner(System.in);
        int in=sc.nextInt();
        if(tr.menuRegex(1, 6, in))
        {
            i=in;
        }
        else
        {
            System.out.println("你选择的菜单不存在,请重新选择:");
        }
        return i;
    }

    public static void main(String[] args) {
        
        
        Operate op=new Operate();
        
        
        while(true)
            
        {
            int i=APP.start();
                
            switch (i) {
                case 1:
                    op.addLogic();
                    break;
                case 2:
                    op.searchLogic();
                    break;
                case 3:
                    op.modifyLogicLogic();
                    break;
                case 4:    
                    op.deleteLogic();
                    break;
                case 5:
                    op.orderLogic();
                    break;
                
                default:
                    
                    break;
                }
            if(i==6)
            {
                break;
            }
                
            }
            
        }
    }
复制代码

 

posted @ 2018-10-08 06:16  代码缔造的帝国  阅读(195)  评论(0编辑  收藏  举报