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

菜单类: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. }
 package com.hq.tel;

 import java.util.Scanner;

 public class App {
//主菜单控制
@SuppressWarnings({ "resource" })
public static int start(){
int xZe = 0;
while(true){
new Menu().mainMenu();
Scanner sc = new Scanner(System.in);
try{
int shuru = sc.nextInt();
if(new TelNoteRegex().menuRegex(7,1,shuru)){
xZe = shuru;
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
}
}
return xZe;
} @SuppressWarnings("resource")
public static void main(String[] args) {
while(true){
int i = start();
switch (i) { // 运行主界面,并进行选择
// 1 添加记录
case 1:
while(true){
new Menu().addMenu(); //调添加记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try {
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(3, 1, shuru)){ //判断选项合法性
new Operate().addLogic(shuru); //调用添加用户业务逻辑控制
continue;
}else if(shuru == 3){
break;
}else{
continue;
}
} catch (Exception e) {
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
// 2 查找记录
case 2:
while(true){
new Menu().serachMenu(); //调用查找记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(7, 1, shuru)){ //判断选项合法性
new Operate().searchLogic(shuru); //调用查找用户信息逻辑
continue;
}else if(shuru == 7){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
//修改记录
case 3:
while(true){
new Menu().modifyMenu(); //调用修改记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(3, 1, shuru)){ //判断选项合法性
new Operate().modifyLogicLogic(shuru); //调用修改用户信息逻辑
continue;
}else if(shuru == 3){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
//删除记录
case 4:
while(true){
new Menu().deleteMenu(); //调用删除记录子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(4, 1, shuru)){ //判断选项合法性
new Operate().deleteLogic(shuru); //调用删除用户信息逻辑
continue;
}else if(shuru==4){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
//排序信息
case 5:
while(true){
new Menu().orderMenu(); //调用排序信息子菜单
int shuru = 0;
Scanner sc = new Scanner(System.in);
try{
shuru = sc.nextInt(); //输入选择选项
if(new TelNoteRegex().menuRegex(5, 1, shuru)){ //判断选项合法性
new Operate().orderLogic(shuru);
continue;
}else if(shuru==5){
break;
}else{
continue;
}
}catch(Exception e){
System.out.println("数据输入异常!");
e.printStackTrace();
continue;
}
}
break;
case 6: //退出系统
break;
}
if(i==6){
break;
}
}
}
}

 

Java项目——模拟电话薄联系人增删改查的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  3. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  4. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

  5. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

  6. ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...

  7. ssm项目框架搭建(增删改查案例实现)——(SpringMVC+Spring+mybatis项目整合)

    Spring 常用注解 内容 一.基本概念 1. Spring 2. SpringMVC 3. MyBatis 二.开发环境搭建 1. 创建 maven 项目 2. SSM整合 2.1 项目结构图 2 ...

  8. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  9. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

随机推荐

  1. Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分

    安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...

  2. SQL Server 事务、异常和游标

    转自:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110325.html Ø 事务 在数据库中有时候需要把多个步骤的指令当作一个整体来运行,这个整 ...

  3. JAVA里的异常

    一.概念和分类 JAVA程序设计语言中,异常对象都是Throwable类的一个实例.Throwable分为Error和Exception. 其中,Error类层次结构描述了JAVA运行时系统的内部错误 ...

  4. 使用sklearn优雅地进行数据挖掘

    目录 1 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术2 并行处理 2.1 整体并行处理 2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回 ...

  5. vim指令常用

    慢慢尝试使用vim,不断学习使用新的快捷键,将常用快捷键但经常容易忘的写下来, 1. 复制黏贴 命令行模式下按住v选中,y表示复制,d表示剪切,p为复制.

  6. iOS Developer:真机测试

    如果出现ios development一项为灰色不可点击状态,苹果的说法是 如果您要为此电脑添加证书,请revoke以前的证书后添加,或者通过以前的mac导出证书 原文不记得了,大概这个意思,苹果不希 ...

  7. 小游戏runpig总结

    前几天写了一个JavaScript小游戏,大概是这样的 demo:strongfanfan.top/RunPig  源代码:www.github.com/strongfanfan/RunPig 画风简 ...

  8. android开发中监控android软件网络请求的软件Charles使用入门

    1.下载并安状软件,官网在此: http://www.charlesproxy.com/ 2.前题条件,电脑和手机必须在同一网段 3.在Charles界面选择菜单 proxy->proxy se ...

  9. Linux内核--网络栈实现分析(四)--网络层之IP协议(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址 ...

  10. Android度量单位说明(DIP,DP,PX,SP) (转帖)

    (一)概念 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不 ...