1 packagecom.hq.tel;2
3 importjava.sql.Connection;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 importjava.util.ArrayList;8 importjava.util.List;9 importjava.util.Scanner;10
11 importcom.mchange.v2.c3p0.ComboPooledDataSource;12
13 /**
14 *15 *@authorAdministrator16 *业务逻辑类17 */
18 public classOperate {19 private List list = new ArrayList(); //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 publicConnection getConnectionByJDBC() {27 try{28 conn =cp.getConnection();29 } catch(SQLException e) {30 System.out.println("数据库连接异常!");31 e.printStackTrace();32 }33 returnconn;34 }35 //输入姓名
36 @SuppressWarnings("resource")37 publicString scName(){38 String name = null;39 while(true){40 System.out.println("请输入姓名,1-20位字母:");41 Scanner sc = newScanner(System.in);42 try{43 String shuru =sc.nextLine();44 if(new TelNoteRegex().nameRegex(shuru)){ //检查姓名
45 name =shuru;46 returnname;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 intscAge(){60 int age = 0;61 while(true){62 try{63 System.out.println("请输入年龄,1-100+");64 Scanner sc = newScanner(System.in);65 int shuru =sc.nextInt();66 if(newTelNoteRegex().ageRegex(shuru)){67 age =shuru;68 returnage;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 publicString scSex(){82 String sex =null;83 while(true){84 System.out.println("请输入性别,(男 m or M) (女 f or F):");85 Scanner sc = newScanner(System.in);86 try{87 String shuru =sc.nextLine();88 if(newTelNoteRegex().sexRegex(shuru)){89 sex =shuru;90 returnsex;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 publicString scTelnum(){104 String telNum =null;105 while(true){106 System.out.println("请输入电话号码,11位数字:");107 Scanner sc = newScanner(System.in);108 try{109 String shuru =sc.nextLine();110 if(newTelNoteRegex().telNumRegex(shuru)){111 telNum =shuru;112 returntelNum;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 publicString scAdress(){126 String adress =null;127 while(true){128 System.out.println("请输入电话所属地,字母或汉字:");129 Scanner sc = newScanner(System.in);130 try{131 String shuru =sc.nextLine();132 if(newTelNoteRegex().addressRegex(shuru)){133 adress =shuru;134 returnadress;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 intscid(){150 int id = 0;151 while(true){152 System.out.println("请输入您要修改的id号:");153 Scanner sc = newScanner(System.in);154 try{155 id =sc.nextInt();156 returnid;157 }catch(Exception e){158 System.out.println("数据输入异常!");159 e.printStackTrace();160 continue;161 }162 }163 }164 //用户添加信息业务逻辑控制
165 public void addLogic(inti){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,intage,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 ListshowAll(){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 = newPerson();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 returnlist;241 }242 //用户查找信息业务逻辑控制
243 public void searchLogic(inti){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 ListsearchByName(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 = newPerson();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 returnlist;315 }316 //按年龄查询用户信息
317 public List searchByAge(intage){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 = newPerson();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 returnlist;346 }347 //按性别查询用户信息
348 public ListsearchBySex(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 = newPerson();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 = newPerson();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 returnlist;406
407 }408 //按电话号码查询
409 public voidsearchByTelNum(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 = newPerson();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 ListsearchByAdd(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 = newPerson();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 returnlist;470 }471 //修改记录业务逻辑控制
472 @SuppressWarnings("resource")473 public void modifyLogicLogic(inti) {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 newMenu().subModifyMenu();486 try{487 Scanner sc = newScanner(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,intid){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,intid){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,intid){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,intid){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,intid){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,intid){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(inti){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(intid){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 voiddeleteAll(){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(inti){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 ListorderName(){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 = newPerson();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 returnlist;775 }776 //按年龄排序
777 public ListorderAge(){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 = newPerson();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 returnlist;805 }806 //按用户性别排序
807 public ListorderSex(){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 = newPerson();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 returnlist;835 }836 }