摘要:視圖層表示層數據傳遞給層實現接收用戶輸入并調用打印菜單獲取用戶輸入調用對應方法歡迎來到學生管理系統添加用戶編輯用戶查詢用戶刪除用戶退出系統請輸入要操作的功能序號接收用戶的菜單選擇對選擇的菜單判
1.視圖層
package net.allidea.studentoa.ui; import java.util.List; import java.util.Scanner; import net.allidea.studentoa.bean.Student; import net.allidea.studentoa.biz.StudentService; /* * 表示層 * 數據傳遞給service層實現 */ public class IndexPage { private StudentService service = new StudentService(); //接收用戶輸入,并調用 public void run() { //1. 打印菜單 2. 獲取用戶輸入 3. 調用對應方法 boolean flag = true; Scanner in = new Scanner(System.in); while (flag) { System.out.println("------------歡迎來到學生管理系統-----------"); System.out.println("1.添加用戶 2.編輯用戶 3.查詢用戶 4.刪除用戶 5.退出系統"); System.out.println("請輸入要操作的功能序號[1-5]:"); //接收用戶的菜單選擇 int op = in.nextInt(); //對選擇的菜單判斷,調用不同的功能 switch (op) { case 1: //選擇添加用戶,調用添加用戶的方法 addStudent(); break; case 2: //選擇修改用戶,調用修改用戶的方法 editStudent(); break; case 3: //選擇刪除用戶,調用刪除用戶的方法 selectStudent(); break; case 4: //選擇查看用戶,調用查看用戶的方法 deleteStudent(); break; case 5: System.out.println("再見!"); flag = false; break; default: System.out.println("輸入有誤,請重新輸入!"); } } } private void addStudent() { /* * 1. 獲取用戶輸入,封裝到bean中。 * 2. 調用service的addStudent()方法完成添加功能 */ System.out.println("選擇的添加用戶功能,請輸入以下內容"); Scanner sc = new Scanner(System.in); System.out.print("請輸入姓名:"); String sname = sc.next(); System.out.print("請輸入密碼:"); String pass = sc.next(); System.out.print("請輸入成績:"); double results = sc.nextDouble(); System.out.print("請輸入日期:格式XXXX-XX-XX"); String createtime = sc.next(); //將接收到的數據,調用service層的方法,傳遞參數 //將用戶輸入的所有參數,封裝成Student對象 Student s = new Student(0, sname, pass, results, createtime); service.addStudent(s); System.out.println("添加用戶成功!"); } private void editStudent() { //調用查詢所有財務數據的功能,顯示出啦 //看到所有的數據,從中選擇一向,進行修改 selectAll(); System.out.println("選擇的是編輯功能,請輸入"); Scanner sc = new Scanner(System.in); System.out.print("請輸入ID:"); int sid = sc.nextInt(); System.out.print("請輸入姓名:"); String sname = sc.next(); System.out.print("請輸入密碼:"); String pass = sc.next(); System.out.print("請輸入成績:"); double results = sc.nextDouble(); System.out.print("請輸入日期:格式XXXX-XX-XX"); String createtime = sc.next(); //將所有用戶輸入的數據,封裝到Student對象 Student s = new Student(sid, sname, pass, results, createtime); //調用controller層中的方法實現編輯用戶 service.editStudent(s); System.out.println("編輯用戶成功!"); } //定義刪除方法 private void deleteStudent() { selectAll(); System.out.println("選擇的是刪除功能,請輸入ID號即可"); Scanner in = new Scanner(System.in); System.out.print("請輸入ID:"); service.deleteStudent(in.nextInt()); System.out.println("刪除用戶成功!"); } /* * 定義方法selectStudent(); * 顯示查詢方式, 1.所有 2.條件 * 接收用戶的選擇 */ private void selectStudent() { System.out.println("1. 查詢所有 2. 按時間查詢 3. 按成績查詢"); Scanner sc = new Scanner(System.in); int selectChooser = sc.nextInt(); //判斷根據用戶的選擇,調用不同的功能 switch(selectChooser){ case 1: //選擇的查詢所有,調用查詢所有的方法 selectAll(); break; case 2: //選的時間條件查詢,調用帶有查詢條件的方法 selectDate(); break; case 3: //選的成績條件查詢,調用帶有查詢條件的方法 selectResults(); break; default: System.out.println("輸入錯誤!"); } } /* * 定義方法,實現查詢所有的用戶數據 */ private void selectAll() { //調用控制層中的方法,查詢所有的用戶數據 List2.業務層list = service.selectAll(); if(list.size() != 0) print(list); else System.out.println("沒有查詢到數據"); } //輸出用戶數據方法,接收list集合,遍歷集合,輸出表格 private void print(List list) { //輸出表頭 System.out.println("ID 姓名 密碼 成績 時間"); //遍歷集合,輸出到控制臺 for (Student s : list) { System.out.println(s.getSid() + " " + s.getSname() + " " + s.getPass() + " " + s.getResults() + " " + s.getCreatetime()); } } /* * 定義方法,調用帶有查詢條件的方法 * 提供用戶輸入日期,開始和結束日期 * 調用service方法,傳遞2個日期的參數,獲取到service查詢的結果集,打印出來 */ private void selectDate() { System.out.println("選擇條件查詢,輸入日期格式XXXX-XX-XX"); Scanner in = new Scanner(System.in); System.out.print("請輸入起始時間:"); String startDate = in.next(); System.out.print("請輸入結束時間:"); String endDate = in.next(); //調用service層方法,傳遞日期,獲取查詢結果集 List list = service.selectDate(startDate, endDate); if(list.size() != 0) print(list); else System.out.println("沒有查詢到數據"); } private void selectResults() { System.out.println("選擇條件查詢,輸入成績格式XXXX-XX-XX"); Scanner in = new Scanner(System.in); System.out.print("請輸入最小成績:"); double mixResults = in.nextDouble(); System.out.print("請輸入最大成績:"); double maxResults = in.nextDouble(); //調用service層方法,傳遞日期,獲取查詢結果集 List list = service.selectResults(mixResults, maxResults); if(list.size() != 0) print(list); else System.out.println("沒有查詢到數據"); } }
package net.allidea.studentoa.biz; import java.util.List; import net.allidea.studentoa.bean.Student; import net.allidea.studentoa.dao.StudentDao; /* * 業務層類 * 接收上一層的數據 * 經過計算,傳遞給dao層,操作數據庫 * 調用dao層中的類,類成員位置,創建Dao類的對象 */ public class StudentService { private StudentDao dao = new StudentDao(); //定義方法,實現刪除用戶功能 public void deleteStudent(int sid) { dao.deleteStudent(sid); } //定義方法,實現編輯用戶 public void editStudent(Student s) { dao.editStudent(s); } /* * 定義方法,添加數據功能 * 有控制層調用,傳遞Student類型對象 * 方法調用dao層方法,傳遞Student對象 */ public void addStudent(Student s) { dao.addStudent(s); } /* * 定義方法,實現條件查詢用戶 * 方法由控制層調用,傳遞2個日期字符串 * 調用dao層的方法,傳遞2個日期字符串 * 獲取查詢結果集 * */ public List3.數據層selectDate(String startDate,String endDate) { return dao.selectDate(startDate, endDate); } /* * 定義方法,實現查詢所有用戶數據 * 此方法由控制層調用,去調用dao層方法 * 返回存儲Student對象的List集合 */ public List selectAll() { return dao.selectAll(); } /* * 定義方法,實現條件查詢用戶 * 方法由控制層調用,傳遞2個日期字符串 * 調用dao層的方法,傳遞2個日期字符串 * 獲取查詢結果集 * */ public List selectResults(double mixResults,double maxResults) { return dao.selectResults(mixResults, maxResults); } }
package net.allidea.studentoa.dao; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import net.allidea.studentoa.bean.Student; import net.allidea.studentoa.common.JDBCUtils; /* * 實現對數據表s_user數據增刪改差操作 */ public class StudentDao { private QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); //定義方法,實現刪除用戶功能 public void deleteStudent(int sid) { String sql = "delete from s_user where sid = ?"; try { qr.update(sql, sid); } catch (SQLException e) { throw new RuntimeException(e); } } //定義方法,實現編輯用戶功能,更新數據表 public void editStudent(Student s) { try { String sql = "update s_user set sname = ?,pass = ?,results = ?,createtime = ? where sid = ?" ; //創建對象數組,存儲所有實際參數 Object[] params = {s.getSname(),s.getPass(),s.getResults(),s.getCreatetime(),s.getSid()}; //調用qr對象中的方法,update執行更新 qr.update(sql, params); }catch(SQLException ex) { System.out.println(ex); throw new RuntimeException("用戶更新失敗"); } } /* * 定義方法,添加數據功能 * 有業務層調用,傳遞Student類型對象 * 將Student對象中的數據,添加到數據表 */ public void addStudent(Student zw) { try { //拼寫sql語句 String sql = "insert into s_user (sname,pass,results,createtime)values(?,?,?,?)"; //創建對象數組,存儲5個占位符的實際參數 //實際參數來說原始,傳遞過來的對象是Student Object[] params = {zw.getSname(),zw.getPass(),zw.getResults(),zw.getCreatetime()}; //調用qr對象中的方法,update執行添加 qr.update(sql, params); }catch(SQLException ex) { System.out.println(ex); throw new RuntimeException("用戶添加失敗"); } } /* * 定義方法,查詢數據庫,帶有條件去查詢財務表 * 由業務層調用,查詢結果集存儲到Bean對象,存儲到List集合 * 調用者傳遞2個日期字符串 * */ public List4.工具類selectDate(String startDate,String endDate) { try { //拼寫條件查詢sql語句 String sql = "select * from s_user where createtime between ? and ?"; //定義對象數組,存儲?占位符 Object[] params = {startDate,endDate}; //調用qr對象的方法Query查詢數據表,獲取結果集 return qr.query(sql, new BeanListHandler<>(Student.class),params); }catch(SQLException ex) { System.out.println(ex); throw new RuntimeException("條件查詢失敗"); } } public List selectResults(double mixResults,double maxResults) { try { //拼寫條件查詢sql語句 String sql = "select * from s_user where results between ? and ?"; //定義對象數組,存儲?占位符s Object[] params = {mixResults,maxResults}; //調用qr對象的方法Query查詢數據表,獲取結果集 return qr.query(sql, new BeanListHandler<>(Student.class),params); }catch(SQLException ex) { System.out.println(ex); throw new RuntimeException("條件查詢失敗"); } } /* * 定義方法,查詢數據庫,獲取所有的用戶數據 * 方法,由業務層調用 * 結果集,將所有的用戶數據,存儲到Bean對象中,存儲到集合中 */ public List selectAll() { try { //查詢用戶數據的SQL語句 String sql = "select * from s_user"; //調用qr對象的方法,query方法,結果集BeanListHandler List list = qr.query(sql, new BeanListHandler<>(Student.class)); return list; }catch(SQLException ex) { System.out.println(ex); throw new RuntimeException("查詢所有用戶失敗"); } } }
package net.allidea.studentoa.common; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; /* * 獲取數據庫連接的工具類 * 實現連接池 */ public class JDBCUtils { //創建BasicDatatSource對象 private static BasicDataSource datasource = new BasicDataSource(); //靜態代碼塊,實現必要的參數設置 static { datasource.setDriverClassName("com.mysql.jdbc.Driver"); datasource.setUrl("jdbc:mysql://localhost:3307/student"); datasource.setUsername("root"); datasource.setPassword("allidea"); datasource.setMaxActive(10); datasource.setMaxIdle(5); datasource.setMinIdle(2); datasource.setInitialSize(10); } public static DataSource getDataSource() { return datasource; } }5.bean
package net.allidea.studentoa.bean; public class Student { private int sid; private String sname; private String pass; private double results; private String createtime; public Student() { super(); } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public double getResults() { return results; } public void setResults(double results) { this.results = results; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public Student(int sid, String sname, String pass, double results, String createtime) { super(); this.sid = sid; this.sname = sname; this.pass = pass; this.results = results; this.createtime = createtime; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", pass=" + pass + ", results=" + results + ", createtime=" + createtime + "]"; } }6.主程序類
package net.allidea.studentoa.test; import net.allidea.studentoa.ui.IndexPage; /* * 主程序類,作用,開啟軟件程序即可 */ public class MainTest { public static void main(String[] args) { new IndexPage().run(); } }7.數據庫
-- 創建數據庫: create table s_user( sid int primary key auto_increment, sname varchar(20), pass varchar(50), results double, createtime date); -- 添加列: INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (1,"張三",123456,"88","2018-5-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (2,"李逵",123456,"99","2018-5-23"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (3,"松江",123456,"56","2018-5-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (4,"林聰",123456,"95","2018-5-14"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (5,"茉莉",123456,"93","2018-6-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (6,"李陽陽",123456,"79","2018-5-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (7,"黃曉明",123456,"85","2018-7-8"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (8,"張小米",123456,"84","2018-8-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (9,"王大治",123456,"72","2018-8-7"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (10,"姚明",123456,"33","2018-8-5"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (11,"劉士奇",123456,"100","2018-8-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (12,"秦瓊",123456,"89","2018-9-02"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (13,"關羽",123456,"76","2018-9-1"); INSERT INTO s_user(sid,sname,pass,results,createtime) VALUES (14,"曹操",123456,"78","2018-10-11");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71829.html
摘要:視圖層表示層數據傳遞給層實現接收用戶輸入并調用打印菜單獲取用戶輸入調用對應方法歡迎來到學生管理系統添加用戶編輯用戶查詢用戶刪除用戶退出系統請輸入要操作的功能序號接收用戶的菜單選擇對選擇的菜單判 showImg(https://segmentfault.com/img/bVbiXjw?w=939&h=509); 1.視圖層 package net.allidea.studentoa.ui...
摘要:如上海北京等管理員自己創建其他地方的學校管理員創建的課程。包含名字性別年齡等學員查詢可上課程學員選課,選擇學校課程,并付款。課程價格,周期課程價格,周期課程價格,周期創建講師屬于北京校區,屬于上海校區。 作業需求 創建北京、上海 2 所學校 創建linux , python , go 3個課程,linuxpy在北京開, go 在上海開 課程包含,周期,價格,通過學校創建課程 通過學校...
摘要:兩年半的時間完成了一次晉升,順利地從一個職場小菜鳥轉變為了一名資深打工人額。。后來隨著工作經驗的積累,我發現這個想法其實是非常錯誤的。不可否認,互聯網行業在這一點上確實不如公務員等體制內職業。后面的工作基本是在吃老本,沒有主動學習,。 先簡單說一下背景,某不知名 985 的學生,18年畢業進...
閱讀 1360·2019-08-30 15:44
閱讀 2106·2019-08-30 11:04
閱讀 526·2019-08-29 15:17
閱讀 2544·2019-08-26 12:12
閱讀 3136·2019-08-23 18:09
閱讀 925·2019-08-23 15:37
閱讀 1525·2019-08-23 14:43
閱讀 2928·2019-08-23 13:13