Java项目——模拟电话薄联系人增删改查

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

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

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

 

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

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

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

 1 package com.hq.tel;
 2 /***
 3  * 
 4  * @author Administrator
 5  *界面类
 6  */
 7 public class Menu {
 8     //主界面
 9     public void mainMenu(){
10         System.out.println("*******************");
11         System.out.println("**   1 添加记录     **");
12         System.out.println("**   2 查找记录     **");
13         System.out.println("**   3 修改记录     **");
14         System.out.println("**   4 删除记录     **");
15         System.out.println("**   5 排序记录     **");
16         System.out.println("**   6 退出系统     **");
17         System.out.println("*******************");
18         System.out.println("请输入正确的数字:最小是 1,最大是 6。");
19     }
20     //添加记录菜单
21     public void addMenu(){
22         System.out.println("********************");
23         System.out.println("**   1 添加新记录     **");
24         System.out.println("**   2 查看全记录     **");
25         System.out.println("**   3 返回上一级     **");
26         System.out.println("********************");
27         System.out.println("请输入正确的数字:最小是 1,最大是 3。");
28     }
29     //查找记录菜单
30     public void serachMenu(){
31         System.out.println("********************");
32         System.out.println("**   1 按姓名查找     **");
33         System.out.println("**   2 按年龄查找     **");
34         System.out.println("**   3 按性别查找     **");
35         System.out.println("**   4 按号码查找     **");
36         System.out.println("**   5 按住址查找     **");
37         System.out.println("**   6 查看全记录     **");
38         System.out.println("**   7 返回上一级     **");
39         System.out.println("********************");
40         System.out.println("请输入正确的数字:最小是 1,最大是 7。");
41     }
42     //修改记录主菜单
43     public void modifyMenu(){
44         System.out.println("********************");
45         System.out.println("**   1 查看全记录     **");
46         System.out.println("**   2 修改指定记录 **");
47         System.out.println("**   3 返回上一级     **");
48         System.out.println("********************");
49         System.out.println("请输入正确的数字:最小是 1,最大是 3。");
50     }
51     //修改记录子菜单
52     public void subModifyMenu(){
53         System.out.println("*******************");
54         System.out.println("**   1 修改姓名     **");
55         System.out.println("**   2 修改年龄     **");
56         System.out.println("**   3 修改性别     **");
57         System.out.println("**   4 修改号码     **");
58         System.out.println("**   5 修改住址     **");
59         System.out.println("**   6 返回上一级 **");
60         System.out.println("*******************");
61         System.out.println("请输入正确的数字:最小是 1,最大是 6。");
62     }
63     //删除记录菜单
64     public void deleteMenu(){
65         System.out.println("********************");
66         System.out.println("**   1 查看全记录     **");
67         System.out.println("**   2 删除指定记录 **");
68         System.out.println("**   3 删除全部记录 **");
69         System.out.println("**   4 返回上一级     **");
70         System.out.println("********************");
71         System.out.println("请输入正确的数字:最小是 1,最大是 4。");
72     }
73     //排序记录菜单
74     public void orderMenu(){
75         System.out.println("********************");
76         System.out.println("**   1 按姓名排序     **");
77         System.out.println("**   2 按年龄排序     **");
78         System.out.println("**   3 按性别排序     **");
79         System.out.println("**   4 查看全记录     **");
80         System.out.println("**   5 返回上一级     **");
81         System.out.println("********************");
82         System.out.println("请输入正确的数字:最小是 1,最大是 5。");
83     }
84 }
 1 package com.hq.tel;
 2 /***
 3  * 
 4  * @author Administrator
 5  *Person实体类
 6  */
 7 public class Person {
 8     //属性
 9     private int id;            //id号
10     private String name;      //姓名
11     private int age;         //年龄
12     private String sex;      //性别
13     private String telNUM;   //电话号码
14     private String adress;   //住址
15     //get/set方法
16     public int getId() {                 //获取id号
17         return id;
18     }
19     public void setId(int id) {          //设置id号
20         this.id = id;
21     }
22     public String getName() {            //获取姓名
23         return name;
24     }
25     public void setName(String name) {     //设置姓名
26         this.name = name;
27     }
28     public int getAge() {                  //获取年龄
29         return age;
30     }
31     public void setAge(int age) {          //设置年龄
32         this.age = age;
33     }
34     public String getSex() {               //获取性别
35         return sex;
36     }
37     public void setSex(String sex) {       //设置性别
38         this.sex = sex;
39     }
40     public String getTelNUM() {            //获取电话号码
41         return telNUM;
42     }
43     public void setTelNUM(String telNUM) {   //设置电话号码
44         this.telNUM = telNUM;
45     }
46     public String getAdress() {              //获取地址
47         return adress;
48     }
49     public void setAdress(String adress) {    //设置地址
50         this.adress = adress;
51     }
52     //构造方法
53     public Person(){                        //无参构造方法
54         super();
55     }
56     public Person(String name, int age, String sex, String telNUM, String adress) {                //含参构造方法
57         super();
58         this.name = name;
59         this.age = age;
60         this.sex = sex;
61         this.telNUM = telNUM;
62         this.adress = adress;
63     }
64     //toString 方法
65     @Override
66     public String toString() {
67         return "序号=" + id + ", 姓名 " + name + ", 年龄 " + age + ", 性别 " + sex + ", 电话号码 " + telNUM
68                 + ", 号码归属地 " + adress + "]";
69     }
70 }
 1 package com.hq.tel;
 2 /**
 3  * 
 4  * @author Administrator
 5  *用户输入检查类
 6  */
 7 public class TelNoteRegex {
 8     //对菜单输入项验证
 9     public boolean menuRegex(int max,int min,int shuru){
10         boolean falg = false;
11         if(shuru<max && shuru>=min){
12             falg = true;
13         }else{
14             falg = false;
15         }
16         return falg;
17     }
18     //对用户输入姓名验证
19     public boolean nameRegex(String name){
20         boolean falg = false;
21         if(name.matches("^[a-zA-Z]+$")){
22             falg = true;
23         }else{
24             falg = false;
25         }
26         return falg;
27     }
28     //对用户输入年龄的验证
29     public boolean ageRegex(int age){
30         boolean falg = false;
31         if(age>0 && age<=100){
32             falg = true; 
33         }else{
34             falg = false;
35         }
36         return falg;
37     }
38     //对用户输入性别的验证
39     public boolean sexRegex(String sex){
40         boolean falg = false;
41         if(sex.equals("男") || sex.equals("m") || sex.equals("M") || sex.equals("女") || sex.equals("f") || sex.equals("F")){
42             falg = true;
43         }else{
44             falg = false;
45         }
46         return falg;
47     }
48     //对用户输入电话号码的验证
49     public boolean telNumRegex(String telNum){
50         boolean falg = false;
51         if(telNum.matches("^([0-9]{7})?$") || telNum.matches("^([0-9]{11})?$")){
52             falg = true;
53         }else{
54             falg = false;
55         }
56         return falg;
57     }
58     //对用户输入地址的验证
59     public boolean addressRegex(String adress){
60         boolean falg = false;
61         if(adress.matches("^[\u4E00-\u9FA5]+$") || adress.matches("^[A-Za-z]+$")){
62             falg = true;
63         }else{
64             falg = false;
65         }
66         return falg;
67     }
68 }
  1 package com.hq.tel;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9 import java.util.Scanner;
 10 
 11 import com.mchange.v2.c3p0.ComboPooledDataSource;
 12 
 13 /**
 14  * 
 15  * @author Administrator
 16  *业务逻辑类
 17  */
 18 public class Operate {
 19     private List<Person> list = new ArrayList<Person>();                //Person 类型集合
 20     private Connection conn = null;                  //定义连接
 21     private PreparedStatement ps = null;             //定义声明
 22     private ResultSet rs = null;                     //定义结果集
 23     //创建连接池
 24     ComboPooledDataSource cp = new ComboPooledDataSource("helloc3p0");
 25     //连接数据库
 26     public Connection getConnectionByJDBC() {
 27         try {
 28             conn = cp.getConnection();
 29         } catch (SQLException e) {
 30             System.out.println("数据库连接异常!");
 31             e.printStackTrace();
 32         }
 33         return conn;
 34     }
 35     //输入姓名
 36     @SuppressWarnings("resource")
 37     public String scName(){
 38         String name = null;
 39         while(true){
 40             System.out.println("请输入姓名,1-20位字母:");
 41             Scanner sc = new Scanner(System.in);
 42             try{
 43                 String shuru = sc.nextLine();
 44                 if(new TelNoteRegex().nameRegex(shuru)){            //检查姓名
 45                     name = shuru;
 46                     return name;
 47                 }else{
 48                     System.out.println("姓名检查未通过!");
 49                     continue;
 50                 }
 51             }catch(Exception e){
 52                 System.out.println("数据输入异常!");
 53                 continue;
 54             }
 55         }
 56     }
 57     //输入年龄
 58     @SuppressWarnings("resource")
 59     public int scAge(){
 60         int age = 0;
 61         while(true){
 62             try{
 63                 System.out.println("请输入年龄,1-100+");
 64                 Scanner sc = new Scanner(System.in);
 65                 int shuru = sc.nextInt();
 66                 if(new TelNoteRegex().ageRegex(shuru)){
 67                     age = shuru;
 68                     return age;
 69                 }else{
 70                     System.out.println("年龄检查未通过!");
 71                     continue;
 72                 }
 73             }catch(Exception e){
 74                 System.out.println("数据输入异常!");
 75                 continue;
 76             }
 77         }
 78     }
 79     //输入性别
 80     @SuppressWarnings("resource")
 81     public String scSex(){
 82         String sex =null;
 83         while(true){
 84             System.out.println("请输入性别,(男 m or M) (女 f or F):");
 85             Scanner sc = new Scanner(System.in);
 86             try{
 87                 String shuru = sc.nextLine();
 88                 if(new TelNoteRegex().sexRegex(shuru)){
 89                     sex = shuru;
 90                     return sex;
 91                 }else{
 92                     System.out.println("性别检查未通过!");
 93                     continue;
 94                 }
 95             }catch(Exception e){
 96                 System.out.println("数据输入异常!");
 97                 continue;
 98             }
 99         }
100     }
101     //输入电话号码
102     @SuppressWarnings("resource")
103     public String scTelnum(){
104         String telNum =null;
105         while(true){
106             System.out.println("请输入电话号码,11位数字:");
107             Scanner sc = new Scanner(System.in);
108             try{
109                 String shuru = sc.nextLine();
110                 if(new TelNoteRegex().telNumRegex(shuru)){
111                     telNum = shuru;
112                     return telNum;
113                 }else{
114                     System.out.println("电话号码检查未通过!");
115                     continue;
116                 }
117             }catch(Exception e){
118                 System.out.println("数据输入异常!");
119                 continue;
120             }
121         }
122     }
123     //输入电话所属地址
124     @SuppressWarnings("resource")
125     public String scAdress(){
126         String adress =null;
127         while(true){
128             System.out.println("请输入电话所属地,字母或汉字:");        
129             Scanner sc = new Scanner(System.in);
130             try{
131                 String shuru = sc.nextLine();
132                 if(new TelNoteRegex().addressRegex(shuru)){
133                     adress = shuru;
134                     return adress;
135                 }else{
136                     System.out.println("所属地址检查未通过!");
137                     continue;
138                 }
139             }catch(Exception e){
140                 System.out.println("数据输入异常!");
141                 e.printStackTrace();
142                 continue;
143             }
144         }
145         
146     }
147     //输入id号
148     @SuppressWarnings("resource")
149     public int scid(){
150         int id = 0;
151         while(true){
152             System.out.println("请输入您要修改的id号:");
153             Scanner sc = new Scanner(System.in);
154             try{
155                 id = sc.nextInt();
156                 return id;
157             }catch(Exception e){
158                 System.out.println("数据输入异常!");
159                 e.printStackTrace();
160                 continue;
161             }
162         }
163     }
164     //用户添加信息业务逻辑控制
165     public void addLogic(int i){
166         switch(i){
167         case 1:                                     //添加新纪录功能
168             String name = scName();                 //接收姓名
169             int age = scAge();                      //接收年龄
170             String sex = scSex();                   //接收性别
171             String telnum = scTelnum();             //接收电话号码
172             String adress = scAdress();             //接收归属地
173             addOperation(name,age,sex,telnum,adress);            //调用添加记录方法,进行传值
174             break;
175         case 2:                                      //查询全记录功能
176             for(Person temp : showAll()){              //遍历结果集
177                 System.out.println(temp);
178             }
179             break;
180         //返回上一级
181         case 3:
182             break;
183         default :
184             System.out.println("选择错误!");
185             break;
186         }
187     }
188     //添加新用户信息
189     public void addOperation(String name,int age,String sex,String telNum,String adress){
190         String sql = "insert into t_telphone values(tel.nextval,?,?,?,?,?)";   //SQL语句
191         try {
192             getConnectionByJDBC();                                      //连接数据库
193             ps = conn.prepareStatement(sql);                            //预编辑SQL语句
194             ps.setString(1, name);                                      //替换通配符
195             ps.setInt(2, age);
196             ps.setString(3, sex);
197             ps.setString(4, telNum);
198             ps.setString(5, adress);
199             ps.executeUpdate();                                         //运行SQL语句
200             System.out.println("添加联系人成功!");
201         } catch (SQLException e) {
202             System.out.println("电话号码已存在,联系人添加失败!");
203         } finally{
204             try {
205                 ps.close();                                 //关闭声明
206                 conn.close();                               //关闭连接
207             } catch (SQLException e) {
208                 e.printStackTrace();
209             }                                                 
210         }
211     }
212     //查询全记录
213     public List<Person> showAll(){
214         String sql = "select * from t_telphone";
215         try {
216             getConnectionByJDBC();                         //连接数据库
217             ps = conn.prepareStatement(sql);               //预编译
218             rs = ps.executeQuery();                        //执行SQL语句
219             while(rs.next()){
220                 Person p = new Person();
221                 p.setId(rs.getInt("ID"));                       
222                 p.setName(rs.getString("NAME"));
223                 p.setAge(rs.getInt("AGE"));
224                 p.setSex(rs.getString("SEX"));
225                 p.setTelNUM(rs.getString("TELNUM"));
226                 p.setAdress(rs.getString("ADDRESS"));
227                 list.add(p);                               //获取信息,将信息写入集合
228             }
229         } catch (SQLException e) {
230             e.printStackTrace();
231         }finally{
232             try {
233                 rs.close();                        //关闭结果集
234                 ps.close();                        //关闭声明
235                 conn.close();                      //关闭连接
236             } catch (SQLException e) {
237                 e.printStackTrace();
238             }
239         }
240         return list;
241     }
242     //用户查找信息业务逻辑控制
243     public void searchLogic(int i){
244         switch(i){
245         case 1:                                          //按姓名查找
246             String name = scName();
247             for(Person temp:searchByName(name)){
248                 System.out.println(temp);
249             }
250             break;
251         case 2:                                         //按年龄查找
252             int age = scAge();
253             for(Person temp:searchByAge(age)){
254                 System.out.println(temp);
255             }
256             break;
257         case 3:
258             String sex = scSex();                       //按性别查找
259             for(Person temp:searchBySex(sex)){
260                 System.out.println(temp);
261             }
262             break;
263         case 4:                                         //按号码查找
264             String telNum = scTelnum();
265             searchByTelNum(telNum);
266             break;
267         case 5:                                         //按地址查找
268             String address = scAdress();
269             for(Person temp:searchByAdd(address)){
270                 System.out.println(temp);
271             }
272             break;
273         case 6:                                        //查询全纪录
274             for(Person temp : showAll()){
275                 System.out.println(temp);
276             }
277         case 7:
278             break;
279         default :
280             System.out.println("输入错误!");
281             break;
282         }
283         
284     }
285     //按姓名查询用户信息
286     public List<Person> searchByName(String name){
287         String sql = "select * from t_telphone where name = ?";
288         try {
289             getConnectionByJDBC();                         //连接数据库
290             ps = conn.prepareStatement(sql);
291             ps.setString(1, name);
292             rs = ps.executeQuery();                        //执行SQL语句
293             while(rs.next()){
294                 Person p = new Person();
295                 p.setId(rs.getInt("ID"));                       
296                 p.setName(rs.getString("NAME"));
297                 p.setAge(rs.getInt("AGE"));
298                 p.setSex(rs.getString("SEX"));
299                 p.setTelNUM(rs.getString("TELNUM"));
300                 p.setAdress(rs.getString("ADDRESS"));
301                 list.add(p);                               //获取信息,将信息写入集合
302             }
303         } catch (SQLException e) {
304             e.printStackTrace();
305         } finally{
306             try {
307                 rs.close();                        //关闭结果集
308                 ps.close();                        //关闭声明
309                 conn.close();                      //关闭连接
310             } catch (SQLException e) {
311                 e.printStackTrace();
312             }
313         }              
314         return list;
315     }
316     //按年龄查询用户信息
317     public List<Person> searchByAge(int age){
318         String sql = "select * from t_telphone where age = ?";
319         try {
320             getConnectionByJDBC();                         //连接数据库
321             ps = conn.prepareStatement(sql);
322             ps.setInt(1, age);
323             rs = ps.executeQuery();                        //执行SQL语句
324             while(rs.next()){
325                 Person p = new Person();
326                 p.setId(rs.getInt("ID"));                       
327                 p.setName(rs.getString("NAME"));
328                 p.setAge(rs.getInt("AGE"));
329                 p.setSex(rs.getString("SEX"));
330                 p.setTelNUM(rs.getString("TELNUM"));
331                 p.setAdress(rs.getString("ADDRESS"));
332                 list.add(p);                               //获取信息,将信息写入集合
333             }
334         } catch (SQLException e) {
335             e.printStackTrace();
336         } finally{
337             try {
338                 rs.close();                        //关闭结果集
339                 ps.close();                        //关闭声明
340                 conn.close();                      //关闭连接
341             } catch (SQLException e) {
342                 e.printStackTrace();
343             }
344         } 
345         return list;
346     }
347     //按性别查询用户信息
348     public List<Person> searchBySex(String sex){
349         String sqlm = "select * from t_telphone where sex = '男' or sex = 'm' or sex = 'M'";        //查询“男”
350         String sqlf = "select * from t_telphone where sex = '女' or sex = 'f' or sex = 'F'";        //查询“女”
351         getConnectionByJDBC();                         //连接数据库
352         if(sex.equals("男") || sex.equals("m") || sex.equals("M")){
353             try {
354                 ps = conn.prepareStatement(sqlm);
355                 rs = ps.executeQuery();
356                 while(rs.next()){
357                     Person p = new Person();
358                     p.setId(rs.getInt("ID"));                       
359                     p.setName(rs.getString("NAME"));
360                     p.setAge(rs.getInt("AGE"));
361                     p.setSex(rs.getString("SEX"));
362                     p.setTelNUM(rs.getString("TELNUM"));
363                     p.setAdress(rs.getString("ADDRESS"));
364                     list.add(p);                               //获取信息,将信息写入集合
365                 }
366             } catch (SQLException e) {
367                 e.printStackTrace();
368             } finally{
369                 try {
370                     rs.close();
371                     ps.close();
372                     conn.close();
373                 } catch (SQLException e) {
374                     e.printStackTrace();
375                 }
376             }
377         }else if(sex.equals("女") || sex.equals("f") || sex.equals("F")){
378             try {
379                 ps = conn.prepareStatement(sqlf);
380                 rs = ps.executeQuery();
381                 while(rs.next()){
382                     Person p = new Person();
383                     p.setId(rs.getInt("ID"));                       
384                     p.setName(rs.getString("NAME"));
385                     p.setAge(rs.getInt("AGE"));
386                     p.setSex(rs.getString("SEX"));
387                     p.setTelNUM(rs.getString("TELNUM"));
388                     p.setAdress(rs.getString("ADDRESS"));
389                     list.add(p);                               //获取信息,将信息写入集合
390                 }
391             } catch (SQLException e) {
392                 e.printStackTrace();
393             } finally{
394                 try {
395                     rs.close();
396                     ps.close();
397                     conn.close();
398                 } catch (SQLException e) {
399                     e.printStackTrace();
400                 }
401         }
402     }else{
403         System.out.println("性别输入错误!");
404     }
405         return list;
406         
407     }
408     //按电话号码查询
409     public void searchByTelNum(String telNum){
410         String sql = "select * from t_telphone where TELNUM = ?";
411         getConnectionByJDBC();                         //连接数据库
412         try {
413             ps = conn.prepareStatement(sql);
414             ps.setString(1, telNum);
415             rs = ps.executeQuery();
416             if(rs.next()){
417                 Person p = new Person();
418                 p.setId(rs.getInt("ID"));                       
419                 p.setName(rs.getString("NAME"));
420                 p.setAge(rs.getInt("AGE"));
421                 p.setSex(rs.getString("SEX"));
422                 p.setTelNUM(rs.getString("TELNUM"));
423                 p.setAdress(rs.getString("ADDRESS"));
424                 System.out.println(p);
425             }else{
426                 System.out.println("您输入的号码不存在!");
427             }
428         } catch (SQLException e) {
429             e.printStackTrace();
430         }finally{
431             try {
432                 rs.close();
433                 ps.close();
434                 conn.close();
435             } catch (SQLException e) {
436                 e.printStackTrace();
437             }
438         }
439     }
440     //按地址查询用户信息
441     public List<Person> searchByAdd(String address){
442         String sql = "select * from t_telphone where address = ?";
443         try {
444             getConnectionByJDBC();                         //连接数据库
445             ps = conn.prepareStatement(sql);
446             ps.setString(1, address);
447             rs = ps.executeQuery();                        //执行SQL语句
448             while(rs.next()){
449                 Person p = new Person();
450                 p.setId(rs.getInt("ID"));                       
451                 p.setName(rs.getString("NAME"));
452                 p.setAge(rs.getInt("AGE"));
453                 p.setSex(rs.getString("SEX"));
454                 p.setTelNUM(rs.getString("TELNUM"));
455                 p.setAdress(rs.getString("ADDRESS"));
456                 list.add(p);                               //获取信息,将信息写入集合
457             }
458         } catch (SQLException e) {
459             e.printStackTrace();
460         } finally{
461             try {
462                 rs.close();                        //关闭结果集
463                 ps.close();                        //关闭声明
464                 conn.close();                      //关闭连接
465             } catch (SQLException e) {
466                 e.printStackTrace();
467             }
468         }
469         return list;
470     }
471     //修改记录业务逻辑控制
472     @SuppressWarnings("resource")
473     public void modifyLogicLogic(int i) {
474         switch (i) {
475         // 查看全记录
476         case 1:
477             for (Person temp : showAll()) {
478                 System.out.println(temp);
479             }
480             break;
481         // 修改指定记录
482         case 2:
483             int id = scid();
484             while(true){
485                 new Menu().subModifyMenu();
486                 try {
487                     Scanner sc = new Scanner(System.in);
488                     int xZe = sc.nextInt();
489                     System.out.println(xZe);
490                     if (new TelNoteRegex().menuRegex(6, 1, xZe)) {
491                         modifyLoginLogic(xZe, id);
492                         continue;
493                     }else if (xZe == 6) {
494                         break;
495                     } else {
496                         System.out.println("输入有误!");
497                     }
498                 } catch (Exception e) {
499                     System.out.println("选择错误hahaha!");
500                     e.printStackTrace();
501                 }
502             }
503             break;
504         // 返回上一层
505         case 3:
506             break;
507         default:
508             System.out.println("选择错误!");
509             break;
510         }
511     }
512     //修改指定记录业务逻辑控制
513     public void modifyLoginLogic(int i,int id){
514         switch(i){
515         //修改姓名
516         case 1:
517             String name = scName();
518             modifyName(name,id);
519             break;
520         //修改年龄
521         case 2:
522             int age = scAge();
523             modifyAge(age,id);
524             break;
525         //修改性别
526         case 3:
527             String sex = scSex();
528             modifySex(sex,id);
529             break;
530         //修改电话号码
531         case 4:
532             String telNum = scTelnum();
533             modifyTelnum(telNum,id);
534             break;
535         //修改地址
536         case 5:
537             String address = scAdress();
538             modifyAddress(address,id);
539             break;
540         //返回上一级
541         case 6:
542             break;
543         default :
544             System.out.println("选择错误!");
545             break;
546         }
547     }
548     //修改姓名
549     public void modifyName(String name,int id){
550         String sql = "update t_telphone set name = ? where id = ?";
551         getConnectionByJDBC();
552         try {
553             ps = conn.prepareStatement(sql);
554             ps.setString(1, name);
555             ps.setInt(2, id);
556             if(ps.executeUpdate()==1){
557                 System.out.println("修改姓名成功!");
558             }else{
559                 System.out.println("修改姓名失败!");
560             }
561         } catch (SQLException e) {
562             e.printStackTrace();
563         }finally{
564             try {
565                 ps.close();
566                 conn.close();
567             } catch (Exception e) {
568                 e.printStackTrace();
569             }
570         }
571     }
572     //修改年龄
573     public void modifyAge(int age,int id){
574         String sql = "update t_telphone set age = ? where id = ?";
575         getConnectionByJDBC();
576         try {
577             ps = conn.prepareStatement(sql);
578             ps.setInt(1, age);
579             ps.setInt(2, id);
580             if(ps.executeUpdate()==1){
581                 System.out.println("修改年龄成功!");
582             }else{
583                 System.out.println("修改年龄失败!");
584             }
585         } catch (SQLException e) {
586             e.printStackTrace();
587         }finally{
588             try {
589                 ps.close();
590                 conn.close();
591             } catch (SQLException e) {
592                 e.printStackTrace();
593             }
594         }
595     }
596     //修改性别
597     public void modifySex(String sex,int id){
598         String sql = "update t_telphone set sex = ? where id = ?";
599         getConnectionByJDBC();
600         try {
601             ps = conn.prepareStatement(sql);
602             ps.setString(1, sex);
603             ps.setInt(2, id);
604             if(ps.executeUpdate()==1){
605                 System.out.println("修改性别成功!");
606             }else{
607                 System.out.println("修改性别失败!");
608             }
609         } catch (SQLException e) {
610             e.printStackTrace();
611         }finally{
612             try {
613                 ps.close();
614                 conn.close();
615             } catch (SQLException e) {
616                 e.printStackTrace();
617             }
618         }
619     }
620     //修改电话号码
621     public void modifyTelnum(String telNum,int id){
622         String sql = "update t_telphone set telNum = ? where id = ?";
623         getConnectionByJDBC();
624         try {
625             ps = conn.prepareStatement(sql);
626             ps.setString(1, telNum);
627             ps.setInt(2, id);
628             if(ps.executeUpdate()==1){
629                 System.out.println("修改电话号码成功!");
630             }else{
631                 System.out.println("修改电话号码失败!");
632             }
633         } catch (SQLException e) {
634             e.printStackTrace();
635         }finally{
636             try {
637                 ps.close();
638                 conn.close();
639             } catch (SQLException e) {
640                 e.printStackTrace();
641             }
642         }
643     }
644     //修改地址
645     public void modifyAddress(String address,int id){
646         String sql = "update t_telphone set address = ? where id = ?";
647         getConnectionByJDBC();
648         try {
649             ps = conn.prepareStatement(sql);
650             ps.setString(1, address);
651             ps.setInt(2, id);
652             if(ps.executeUpdate()==1){
653                 System.out.println("修改归属地成功!");
654             }else{
655                 System.out.println("修改归属地失败!");
656             }
657         } catch (SQLException e) {
658             e.printStackTrace();
659         }finally{
660             try {
661                 ps.close();
662                 conn.close();
663             } catch (SQLException e) {
664                 e.printStackTrace();
665             }
666         }
667     }
668     //删除信息业务逻辑控制
669     public void deleteLogic(int i){
670         switch(i){
671         //查看全记录
672         case 1:
673             for(Person temp:showAll())System.out.println(temp);
674             break;
675         //删除指定记录
676         case 2:
677             int id = scid();
678             delete(id);
679             break;
680         //删除全部记录
681         case 3:
682             deleteAll();
683             break;
684         //返回上一级
685         case 4:
686             break;
687         default :
688             System.out.println("选择错误!");
689         }
690     }
691     //删除指定记录
692     public void delete(int id){
693         String sql = "Delete t_telPhone where id = ?";
694         getConnectionByJDBC();
695         try {
696             ps = conn.prepareStatement(sql);
697             ps.setInt(1, id);
698             if(ps.executeUpdate()==1){
699                 System.out.println("删除联系人成功!");
700             }else{
701                 System.out.println("删除联系人失败!");
702             }
703         } catch (SQLException e) {
704             e.printStackTrace();
705         }
706         
707     }
708     //删除全部记录
709     public void deleteAll(){
710         String sql = "truncate table t_telPhone";
711         getConnectionByJDBC();
712         try {
713             ps = conn.prepareStatement(sql);
714             ps.executeUpdate();
715             System.out.println("删除全部联系人成功!");
716         } catch (SQLException e) {
717             e.printStackTrace();
718         }
719     }
720     //排序业务逻辑控制
721     public void orderLogic(int i){
722         switch(i){
723         //按姓名排序
724         case 1:
725             for(Person temp:orderName())System.out.println(temp);
726             break;
727         //按年龄排序
728         case 2:
729             for(Person temp:orderAge())System.out.println(temp);
730             break;
731         //按性别排序
732         case 3:
733             for(Person temp:orderSex())System.out.println(temp);
734             break;
735         //查询全记录
736         case 4:
737             for(Person temp:showAll())System.out.println(temp);
738             break;
739         //返回上一层
740         case 5:
741             break;
742         default:
743             System.out.println("选择错误!");
744         }
745     }
746     //按姓名排序
747     public List<Person> orderName(){
748         String sql = "select * from t_telphone order by name";
749         try {
750             getConnectionByJDBC();                         //连接数据库
751             ps = conn.prepareStatement(sql);
752             rs = ps.executeQuery();                        //执行SQL语句
753             while(rs.next()){
754                 Person p = new Person();
755                 p.setId(rs.getInt("ID"));                       
756                 p.setName(rs.getString("NAME"));
757                 p.setAge(rs.getInt("AGE"));
758                 p.setSex(rs.getString("SEX"));
759                 p.setTelNUM(rs.getString("TELNUM"));
760                 p.setAdress(rs.getString("ADDRESS"));
761                 list.add(p);                               //获取信息,将信息写入集合
762             }
763         } catch (SQLException e) {
764             e.printStackTrace();
765         } finally{
766             try {
767                 rs.close();                        //关闭结果集
768                 ps.close();                        //关闭声明
769                 conn.close();                      //关闭连接
770             } catch (SQLException e) {
771                 e.printStackTrace();
772             }
773         }
774         return list;
775     }
776     //按年龄排序
777     public List<Person> orderAge(){
778         String sql = "select * from t_telphone order by age";
779         try {
780             getConnectionByJDBC();                         //连接数据库
781             ps = conn.prepareStatement(sql);
782             rs = ps.executeQuery();                        //执行SQL语句
783             while(rs.next()){
784                 Person p = new Person();
785                 p.setId(rs.getInt("ID"));                       
786                 p.setName(rs.getString("NAME"));
787                 p.setAge(rs.getInt("AGE"));
788                 p.setSex(rs.getString("SEX"));
789                 p.setTelNUM(rs.getString("TELNUM"));
790                 p.setAdress(rs.getString("ADDRESS"));
791                 list.add(p);                               //获取信息,将信息写入集合
792             }
793         } catch (SQLException e) {
794             e.printStackTrace();
795         } finally{
796             try {
797                 rs.close();                        //关闭结果集
798                 ps.close();                        //关闭声明
799                 conn.close();                      //关闭连接
800             } catch (SQLException e) {
801                 e.printStackTrace();
802             }
803         }
804         return list;
805     }
806     //按用户性别排序
807     public List<Person> orderSex(){
808         String sql = "select * from t_telphone order by sex";
809         try {
810             getConnectionByJDBC();                         //连接数据库
811             ps = conn.prepareStatement(sql);
812             rs = ps.executeQuery();                        //执行SQL语句
813             while(rs.next()){
814                 Person p = new Person();
815                 p.setId(rs.getInt("ID"));                       
816                 p.setName(rs.getString("NAME"));
817                 p.setAge(rs.getInt("AGE"));
818                 p.setSex(rs.getString("SEX"));
819                 p.setTelNUM(rs.getString("TELNUM"));
820                 p.setAdress(rs.getString("ADDRESS"));
821                 list.add(p);                               //获取信息,将信息写入集合
822             }
823         } catch (SQLException e) {
824             e.printStackTrace();
825         } finally{
826             try {
827                 rs.close();                        //关闭结果集
828                 ps.close();                        //关闭声明
829                 conn.close();                      //关闭连接
830             } catch (SQLException e) {
831                 e.printStackTrace();
832             }
833         }
834         return list;
835     }
836 }
  1 package com.hq.tel;
  2 
  3 import java.util.Scanner;
  4 
  5 public class App {
  6     //主菜单控制
  7     @SuppressWarnings({ "resource" })
  8     public static int start(){
  9         int xZe = 0;
 10         while(true){
 11             new Menu().mainMenu();
 12             Scanner sc = new Scanner(System.in);
 13             try{
 14                 int shuru = sc.nextInt();
 15                 if(new TelNoteRegex().menuRegex(7,1,shuru)){
 16                     xZe = shuru;
 17                     break;
 18                 }else{
 19                     continue;
 20                 }
 21             }catch(Exception e){
 22                 System.out.println("数据输入异常!");
 23             }
 24         }
 25         return xZe;
 26     }
 27 
 28     @SuppressWarnings("resource")
 29     public static void main(String[] args) {
 30         while(true){
 31             int i = start();
 32             switch (i) { // 运行主界面,并进行选择
 33             // 1 添加记录
 34             case 1: 
 35                 while(true){
 36                     new Menu().addMenu();                  //调添加记录子菜单
 37                     int shuru = 0;
 38                     Scanner sc = new Scanner(System.in);
 39                     try {
 40                         shuru = sc.nextInt();                        //输入选择选项
 41                         if(new TelNoteRegex().menuRegex(3, 1, shuru)){          //判断选项合法性
 42                             new Operate().addLogic(shuru);                     //调用添加用户业务逻辑控制
 43                             continue;
 44                         }else if(shuru == 3){
 45                             break;
 46                         }else{
 47                             continue;
 48                         }
 49                     } catch (Exception e) {
 50                         System.out.println("数据输入异常!");
 51                         e.printStackTrace();
 52                         continue;
 53                     }
 54                 }
 55                 break;
 56             // 2 查找记录
 57             case 2:
 58                 while(true){
 59                     new Menu().serachMenu();                //调用查找记录子菜单
 60                     int shuru = 0;
 61                     Scanner sc = new Scanner(System.in);
 62                     try{
 63                         shuru = sc.nextInt();                    //输入选择选项
 64                         if(new TelNoteRegex().menuRegex(7, 1, shuru)){         //判断选项合法性
 65                             new Operate().searchLogic(shuru);                     //调用查找用户信息逻辑
 66                             continue;
 67                         }else if(shuru == 7){
 68                             break;
 69                         }else{
 70                             continue;
 71                         }
 72                     }catch(Exception e){
 73                         System.out.println("数据输入异常!");
 74                         e.printStackTrace();
 75                         continue;
 76                     }
 77                 }
 78                 break;
 79             //修改记录
 80             case 3:
 81                 while(true){
 82                     new Menu().modifyMenu();                   //调用修改记录子菜单
 83                     int shuru = 0;
 84                     Scanner sc = new Scanner(System.in);
 85                     try{
 86                         shuru = sc.nextInt();                    //输入选择选项
 87                         if(new TelNoteRegex().menuRegex(3, 1, shuru)){           //判断选项合法性
 88                             new Operate().modifyLogicLogic(shuru);                     //调用修改用户信息逻辑
 89                             continue;
 90                         }else if(shuru == 3){
 91                             break;
 92                         }else{
 93                             continue;
 94                         }
 95                     }catch(Exception e){
 96                         System.out.println("数据输入异常!");
 97                         e.printStackTrace();
 98                         continue;
 99                     }
100                 }
101             //删除记录
102             case 4:
103                 while(true){
104                     new Menu().deleteMenu();              //调用删除记录子菜单
105                     int shuru = 0;
106                     Scanner sc = new Scanner(System.in);
107                     try{
108                         shuru = sc.nextInt();                 //输入选择选项
109                         if(new TelNoteRegex().menuRegex(4, 1, shuru)){      //判断选项合法性
110                             new Operate().deleteLogic(shuru);            //调用删除用户信息逻辑
111                             continue;
112                         }else if(shuru==4){
113                             break;
114                         }else{
115                             continue;
116                         }
117                     }catch(Exception e){
118                         System.out.println("数据输入异常!");
119                         e.printStackTrace();
120                         continue;
121                     }
122                 }
123                 break;
124             //排序信息
125             case 5:
126                 while(true){
127                     new Menu().orderMenu();           //调用排序信息子菜单
128                     int shuru = 0;
129                     Scanner sc = new Scanner(System.in);
130                     try{
131                         shuru = sc.nextInt();           //输入选择选项
132                         if(new TelNoteRegex().menuRegex(5, 1, shuru)){     //判断选项合法性
133                             new Operate().orderLogic(shuru);
134                             continue;
135                         }else if(shuru==5){
136                             break;
137                         }else{
138                             continue;
139                         }
140                     }catch(Exception e){
141                         System.out.println("数据输入异常!");
142                         e.printStackTrace();
143                         continue;
144                     }
145                 }
146                 break;
147             case 6:                      //退出系统
148                 break;
149             }
150             if(i==6){
151                 break;
152             }
153         }
156     }
157 }

 

 

 

posted @ 2016-10-24 17:46  荆小八  阅读(1387)  评论(1编辑  收藏  举报