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 }